gpt4 book ai didi

file - Cakephp 2.3.x发送文件并强制下载mp4文件

转载 作者:行者123 更新时间:2023-12-04 04:55:21 24 4
gpt4 key购买 nike

我正在使用cakephp 2.3.1

我想强制每个http://book.cakephp.org/2.0/en/controllers/request-response.html#cake-response-file下载mp4文件

在我的“ View ”中,我有以下代码可以正确搜索文件名,找到文件名,并显示下载链接:

<?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文件。在我的 Controller 中,我无法使用以下代码:
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()”

我收到以下错误:
错误:在非对象上调用成员函数getFile()

我在做什么错,还有什么其他文献可以帮助我更好地理解这一点?

最佳答案

您不理解的那行只是示例的一部分-假定应用程序具有一个名为Attachment的模型,并且它具有一种名为getFile的方法。由于您没有Attachment模型(或者至少对 Controller 不可见),因此会出现“在非对象上调用成员函数”错误。但这并不重要:您只需要担心提供this->response->file()的完整系统路径。在您的示例中,您可以通过将该行更改为:

$this->response->file(WWW_ROOT.'files/'. $id .'.mp4', array('download' => true, 'name' => 'Dance'));

您可以摆脱 $this->Attachment->getFile行,因为它与您的情况无关。

让我知道是否有帮助!

关于file - Cakephp 2.3.x发送文件并强制下载mp4文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com