0

我是新来的,使用 cakephp,我使用 MediaViews 从服务器(pdf)下载文件,我在 cakephp.org、google 和 here 上关注媒体视图教程,但仍然有问题,当我点击链接时,我得到了查看,但没有文件,没有任何变化。(book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Views.html) 我的下载功能:

function download () {
$this->view = 'Media';
$params = array(
'id' => 'dino.pdf',
'name' => 'dino',
'extension' => 'pdf',
'download' => true,
'mimeType' => array('pdf' => 'application/pdf'),   
'path' => APP.'files'.DS
);
$this->set('dino',$params);
}

我将 var_dump 用于parmas,结果:

 array(6) { ["id"]=> string(8) "dino.pdf" ["name"]=> string(4) "dino"   ["extension"]=> string(3) "pdf" ["download"]=> bool(true) ["mimeType"]=> array(1) { ["pdf"]=> string(15) "application/pdf" } ["path"]=> string(20) "D:\medium\app\files\" } 

我在磁盘上的文件:D:\medium\app\files\dino.pdf

任何可以帮助我的人,谢谢

4

1 回答 1

0

请阅读“正确”的文档。您在使用 2.x 时发布了 1.3 链接。

http://book.cakephp.org/2.0/en/controllers/request-response.html#cakeresponse

$this->autoRender = false;
$this->response->type('pdf');
$this->response->file($path . $filename, array('download' => true, 'name' => $name));

请注意,file() >= 2.3。您可能想要升级。

对于 <= 2.2,您也许可以这样做

$this->response->body($contentOfPdf);
$this->response->download($name);
于 2013-02-06T15:39:32.320 回答