1

在我的 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'));
4

1 回答 1

0

我使用了一个名为“文件夹”的自行创建的模型。事实证明这是不可能的,因为它破坏了一切。我将模型重命名为“Dir”,现在它可以工作了。应该早先阅读受保护的模型名称列表。

于 2013-10-20T12:30:02.743 回答