Ouvrir un fichier excel dans controller.php zend framework

indala77 Messages postés 5 Statut Membre -  
indala77 Messages postés 5 Statut Membre -
Bonjour,

jecherche comment ouvrir un fichier excel dans un controller.php en zend framework le fichier s'ouvre mais dedans ya que le path de fichier excel

le message d'erreur

####################"
voila source controller .php

/*****afficher les EXCEL ************/
public function excelAction(){
$idxls = $this->getRequest ()->getParam('id');
echo $idxls;
$ct = new Application_Model_DbTable();
$xls = $ct->find($idxls)->current();
$xls2= $xls->name;
$xls3= $xls->size;
echo $xls2;
$xlsPath = realpath(APPLICATION_PATH . '/../public/excelshift').'/'.$xls2;
echo $xlsPath;

$this->getResponse()->setRawHeader( 'Content-Type: application/msexcel; charset=UTF-8' )
->setRawHeader( 'Content-Disposition: inline; filename = '$xls2' ' )
->setRawHeader( 'Content-Transfer-Encoding: binary' )
->setRawHeader( 'Expires: 0' )
->setRawHeader( ('Cache-Control: must-revalidate') )
->setRawHeader( 'Pragma: public' )
->setRawHeader( 'Content-Length: . ' $xls3' )
->sendResponse();

readfile( $xlsPath );
exit();

merci a vous en avance

cdt

3 réponses

  1. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
     
    Bonjour,

    A mon avis, quelque part par là:
    ....
    readfile( $xlsPath );

    je remplacerai par un

    $contenuFichier = file_get_contents(....);
    echo $contenuFichier;

    A+
    0
  2. indala77 Messages postés 5 Statut Membre
     
    rebonjour

    sa na pas marché

    :(
    0
    1. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
       
      Ce qu'il faut faire:
      - vérifier que le chemin d'accès au fichier est le bon avec un echo du chemin du fichier et nom de fichier
      - faire un file_get_contents sur ce chemin+fichier
      - faire un echo du contenu ou ceci:

      - dans la partie controller -> action:

      // partie code envoi un fichier excell
                      $fichier = ....ici chemin et nom du fichier....;
      echo $fichier; die;  // pour vérif chemin nom, enlever cette ligne après vérif
      
                      // inhibition layout
                      $this->_helper->layout()->disableLayout(); 
                      $this->_helper->viewRenderer->setNoRender(true);
      
                      // génération en-tête et transmission document
                      header(''Content-Type: application/msexcel; charset=UTF-8');
                      header('Location: '.$fichier);


      A+
      0
  3. indala77 Messages postés 5 Statut Membre
     
    rebonjour mpmp93

    sa na pas marché voila le code que jai mis ,jai essayer aussi avec load zend file la meme chose ,avec l'ancien code le fichier excel se charge mais il sort vide

    $idxls = $this->getRequest ()->getParam('id');
    //echo $idxls;
    $ct = new Application_Model_DbTable_Shift();
    $xls = $ct->find($idxls)->current();
    $xls2= $xls->name;
    $xls3= $xls->size;
    $xls4= $xls->created;
    // echo $xls2;
    $xlsPath = realpath(APPLICATION_PATH . 'C:\Program Files\EasyPHP-12.1\www\mourad\public\excelshift') .$xls2;
    echo $xlsPath;

    /*$this->_helper->layout->disableLayout();
    $this->_helper->viewRenderer->setNoRender();
    $this->getResponse()->setRawHeader( "Content-type: application/vnd.ms-excel")
    ->setRawHeader( "Content-Disposition: attachment; filename =\"$xls2\" " )
    //->setRawheader("Cache-Control: max-age=0");
    ->setRawHeader( "Content-Transfer-Encoding: binary" )
    ->setRawHeader( "Expires: 0" )
    // ->setRawHeader("Content-Type: application/" . $mimeType)
    ->setRawheader("Content-Type: application/force-download")
    ->setRawheader("Content-Type: application/download")
    ->setRawHeader( "Cache-Control: must-revalidate, post-check=0, pre-check=0" )
    ->setRawHeader( "Pragma: public" )
    ->setRawHeader( "Accept-Ranges: bytes" )
    ->setRawHeader( "Content: " .$xls3 )
    ->sendResponse();
    $xls5 = Zend_Loader::loadFile($pdfPath);

    echo $xls5->render();*
    0
    1. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
       
      Désolé. Mais si je suis pas devant la machine, je sèche....
      0
    2. indala77 Messages postés 5 Statut Membre
       
      rebonsoir

      merci comme meme , si vous avez le temp ,je cherche toujours a régler ce pb

      merci
      0