在我的UploadsController中,我有这个下载方法:
function download($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid id for upload', true));
$this->redirect(array('action' => 'index'));
}
$upload = $this->Upload->findById($id);
if (!$upload) {
$this->Session->setFlash(__('Invalid id for upload', true));
$this->redirect(array('action' => 'index'));
}
$path = APP . 'useruploads' . DS . $upload['Upload']['id'];
$this->response->file($path);
//Return reponse object to prevent controller from trying to render a view
return $this->response;
}
但是在尝试下载文件时出现此错误:
错误:在database.php中找不到数据源配置493。
文件存在,我查了一下。 database.php与文件下载有什么关系?这个错误信息对我来说没有意义。
我正在使用Cake 2.4.1。谁能告诉我他们的文件下载如何与2.4.1一起使用?
如果有帮助,这是Stack Trace:
我发现了什么: 我的文件名为5262ffbf-6e44-45b8-abc6-0de8009d1f70。 在文件函数中使用$ path2会给我一个错误。 使用带有硬编码ID的$ path有效。 但$ path和$ path2的调试输出是相同的。这怎么可能?
$path = APP . 'useruploads' . DS . '5262ffbf-6e44-45b8-abc6-0de8009d1f70';
$path2 = APP . 'useruploads' . DS . $upload['Upload']['id'];
debug($path);
debug($path2);
$this->response->file($path2, array('download' => true, 'name' => 'logo.png'));
答案 0 :(得分:0)
我使用了一个名为“Folder”的自创模型。结果不应该是因为它打破了一切。我将模型重命名为“Dir”,现在它可以工作了。 应该早先阅读受保护的模型名称列表。