Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
j'ai mis à jour ma library Zend de 1.7 à 1.10 récemment.
Et j'ai maintenant des problèmes lors de téléchargement de fichiers.
En effet ceux ci sont corrompus...Lors que je les ouvre avec Notepad ++, on voit une ligne vide qui s'est insérée au début du fichier, si je la supprime le fichier redevient lisible...
Cela pose pb avec les image surtout (jpeg...), car pour les pdf la ligne vide est aussi ajoutée mais le fichier s'ouvre bien quand même.
Je n'ai jms rencontré ce pb avt, j'ai cherché sur le forum et ailleurs je n'ai pas trouvé de réponse.
Voila le code de mon action et de ma vue...
ACTION
function downloadAction() { $id=$this->checkId(); $this->_helper->layout->disableLayout(); $documents = Table_Document::getInstance(); $row=$documents->findRowSimple($id); $filePath=$row->document_path; $fullPath=$_SERVER['DOCUMENT_ROOT']."/".$filePath; if (file_exists($fullPath)) { $file = file_get_contents($fullPath); $this->view->row = $row; $this->view->file = $file; }else{ $this->redirectFileNotFound(); } }
View
<?php if(isset($this->row)){ header('Content-type: '.$this->row['document_type']); header('Content-Disposition: attachment; filename="'.$this->row['document_name'].'"'); echo $this->file; }else{ echo "Error : File not found on the server"; } ?>
Dernière modification par enjoy (26-08-2010 11:59:33)
Hors ligne
Salut,
Est ce que tu n'aurais pas un retour à la ligne parasite dans un de tes fichiers?
Vu que le système de zend utilises un buffeur pour stocker la vue dans un tableau, un tel retour à la ligne ne provoquerait pas de message d'erreur du aux header.
Si tes fichiers n'ont pas du tout changé entre la 1.7 et la 1.10 du framework alors c'est que le problème vient du framework lui même. Si c'est le cas et que le problème disparait quand tu remets la 1.7 alors il faudra ouvrir un bug sur le sujet (s'il n'en existe pas déjà)
Hors ligne
Bonjour, merci pour votre réponse.
Quand vous me dites retour à la ligne parasite dans un fichier vous pensez aux fichiers de la vue et au controller?
Je ne pense vraiment pas que j'en ai un.
En fait si je ne met pas le header dans la vue et que je fais juste echo le fichier à télécharger, je vois bien le même texte que qd j'ouvre avec notepad++ et SANS le saut de ligne.
C'est pour cela que ca me semble bizarre que cela soit lié à la version de Zend en fait.
Pour télécharger un fichier, on utilise pas de composant Zend_**
Mais à part ca bcp de mes fichiers ont changé au niveau configuraion dans Zend car avt je n'avais pas de Bootstrap, j'avais tout dans le index.php et je n'avais pas non plus de VirtualHost dans Apache http.conf...
Hors ligne
Après nouvelle vérification, le pb venait d'un saut de ligne dans mon index.php du dossier public...
Merci encore pour l'aide...
Hors ligne