Ouvrir un fichier excel dans controller.php zend framework

Fermé
indala77 Messages postés 5 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 11 avril 2014 - 30 mars 2014 à 23:29
indala77 Messages postés 5 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 11 avril 2014 - 11 avril 2014 à 23:17
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


A voir également:

3 réponses

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
10 avril 2014 à 11:28
Bonjour,

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


je remplacerai par un

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

A+
0
indala77 Messages postés 5 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 11 avril 2014
10 avril 2014 à 23:21
rebonjour

sa na pas marché

:(
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
Modifié par mpmp93 le 11/04/2014 à 08:52
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
indala77 Messages postés 5 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 11 avril 2014
11 avril 2014 à 19:34
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
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
11 avril 2014 à 21:28
Désolé. Mais si je suis pas devant la machine, je sèche....
0
indala77 Messages postés 5 Date d'inscription mardi 25 mars 2014 Statut Membre Dernière intervention 11 avril 2014
11 avril 2014 à 23:17
rebonsoir

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

merci
0