Un peu noob sur Zend Framework, je suis confronté à un petit soucis de rien du tout mais qui me rend chèvre
Je dois simplement forcer le téléchargement d'un PDF, voilà mon code jusqu'à présent :
/**
* Force le téléchargement du guide utilisateur
*/
public function documentAction ()
{
$this->disableRendering(true, false);
$dirname = APP_ROOT . DS . 'data' . DS . 'documents' . DS;
$filename = $dirname . __('docUser.ent');
//echo $filename;
if (file_exists($filename)) {
$this->getResponse()
->setHeader('Content-Disposition', 'attachment; filename="' . basename($filename) . '"')
->setHeader('Content-type', 'application/x-pdf')
->setHeader('Cache-control', 'public')
->setHeader('Content-Transfer-Encoding', 'binary')
->setHeader('Content-length', filesize($filename));
readfile($filename);
} else {
$this->addMessage("Erreur de téléchargement du guide utilisateur");
//$this->redirector('action', 'controller');
}
}
Le téléchargement se fait bien, le fichier à la bonne taille...mais erreur de lecture (alors que le fichier d'origine est ok). Est-ce un oublie dans mon code ou autre chose toute bête que j’aurai oublié de mettre ou encore mal codé ?Merci d'avance.
EDIT : J'ai testé avec plusieurs fichiers PDF ça me fait pareil, Firefox ou IE pareil, et j'ai tenté en utilisant directement header() :
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
header('Content-length: ' . filesize($filename));
Et surprise...pareil...là je n'ai plus d'idées...