在我的 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 与文件下载有什么关系?这个错误信息对我来说真的没有意义。
我正在使用蛋糕 2.4.1。谁能告诉我他们的文件下载如何与 2.4.1 配合使用?
如果有帮助,这里是堆栈跟踪:
我发现:我的文件名为 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'));