Cakephp 2.3.x发送文件并强制下载mp4文件
发布时间:2020-12-13 13:44:11 所属栏目:PHP教程 来源:网络整理
导读:我正在使用cakephp 2.3.1 我想强制每http://book.cakephp.org/2.0/en/controllers/request-response.html#cake-response-file下载一个mp4文件 在我的“视图”中,我有以下代码正确搜索文件名,找到文件名,并显示下载链接: ?php $filename = APP . 'webroot/fi
我正在使用cakephp 2.3.1
我想强制每http://book.cakephp.org/2.0/en/controllers/request-response.html#cake-response-file下载一个mp4文件 在我的“视图”中,我有以下代码正确搜索文件名,找到文件名,并显示下载链接: <?php $filename = APP . 'webroot/files/' . $dance['Dance']['id'] . '.mp4'; if (file_exists($filename)) { echo $this->Html->link('DOWNLOAD',array('controller' => 'dances','action' => 'sendFile',$dance['Dance']['id'])); } else { echo 'Coming soon: available April 16th'; } ?> 当用户点击链接时我想强制下载mp4文件.在我的控制器中,我有以下代码不起作用: public function sendFile($id) { $file = $this->Attachment->getFile($id); //Note: I do not understand the 'Attachment' and the 'getFile($id)' $this->response->file($file['webroot/files/'],array('download' => true,'name' => 'Dance')); //Return reponse object to prevent controller from trying to render a view return $this->response; } 我不明白’附件’和’getFile()’ 我收到以下错误: 我做错了什么,是否有其他文件我可以看到更好地理解这一点?
您不理解的行只是示例的一部分 – 它假定应用程序有一个名为Attachment的模型,并且它有一个名为getFile的方法.由于您没有附件模型(或者至少它对控制器不可见),因此您将获得“对非对象的成员函数调用”错误.但这并不重要:您需要担心的是提供一个完整的系统路径 – >> response-> file().在您的示例中,您可以通过将该行更改为:
$this->response->file(WWW_ROOT.'files/'. $id .'.mp4','name' => 'Dance')); 您可以删除$this-> Attachment-> getFile行,因为它与您的情况无关. 如果有帮助,请告诉我! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |