par
BaLiSTiK » 02 avr. 2014, 15:41
Je reup ce topic, car j'ai réutilisé mon code pour mon projet perso, mais bizarrement, après quelques modifs (légères), je fichier que je veux faire télécharger, s'ouvre directement dans l'onglet, alors que je veux forcer le téléchargement.
Le code, côté vue :
<a href="<?php echo $this->baseUrl(); ?>/Index/document/type/pdf" class="btn btn-default" title="Télécharger le CV au format PDF"><i class="fa fa-download"></i> PDF</a>
Et côté PHP (indexController)
public function documentAction ()
{
$dirDocument = dirname(APPLICATION_PATH) . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR . 'documents' . DIRECTORY_SEPARATOR;
$typeFile = $this->_getParam("type"); //recuperation du type de doc, par defaut PDF
if (isset($typeFile)) {
$file = Zend_Registry::getInstance()->constants->files->cv->$typeFile;
$fileName = $dirDocument . $file;
if (file_exists($fileName)) {
$this->getResponse()
->setHeader('Content-type', 'application/pdf', true)
->setHeader('Content-Disposition', 'inline; filename="' . basename($fileName) . '"', true)
->setHeader('Content-Transfer-Encoding', 'binary', true)
->setHeader('Content-Description', 'File Transfer', true)
->setHeader('Cache-control', 'must-revalidate, post-check=0, pre-check=0', true)
->setHeader('Pragma', 'public', true)
->setHeader('Content-length', filesize($fileName), true);
readfile($fileName);
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
} else {
$this->_forward('index', 'competences');
}
} else {
$this->_forward('index', 'competences');
}
}
Je reup ce topic, car j'ai réutilisé mon code pour mon projet perso, mais bizarrement, après quelques modifs (légères), je fichier que je veux faire télécharger, s'ouvre directement dans l'onglet, alors que je veux forcer le téléchargement.
Le code, côté vue :
[html]
<a href="<?php echo $this->baseUrl(); ?>/Index/document/type/pdf" class="btn btn-default" title="Télécharger le CV au format PDF"><i class="fa fa-download"></i> PDF</a>
[/html]
Et côté PHP (indexController)
[php]
public function documentAction ()
{
$dirDocument = dirname(APPLICATION_PATH) . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR . 'documents' . DIRECTORY_SEPARATOR;
$typeFile = $this->_getParam("type"); //recuperation du type de doc, par defaut PDF
if (isset($typeFile)) {
$file = Zend_Registry::getInstance()->constants->files->cv->$typeFile;
$fileName = $dirDocument . $file;
if (file_exists($fileName)) {
$this->getResponse()
->setHeader('Content-type', 'application/pdf', true)
->setHeader('Content-Disposition', 'inline; filename="' . basename($fileName) . '"', true)
->setHeader('Content-Transfer-Encoding', 'binary', true)
->setHeader('Content-Description', 'File Transfer', true)
->setHeader('Cache-control', 'must-revalidate, post-check=0, pre-check=0', true)
->setHeader('Pragma', 'public', true)
->setHeader('Content-length', filesize($fileName), true);
readfile($fileName);
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
} else {
$this->_forward('index', 'competences');
}
} else {
$this->_forward('index', 'competences');
}
}
[/php]