cakePHP文件下载未找到或无法读取

时间:2013-08-14 02:00:24

标签: php cakephp cakephp-2.0

我现在一直在努力解决这个问题。我用这个从app/uploads/目录下载文件。它表示目录未找到或不可读。然而我检查了它,并且还有使用$file['File']['filename']的文件。我想知道我在这里缺少什么。?

$file = $this->File->findById($id);

$extension = pathinfo($file['File']['filename'],PATHINFO_EXTENSION);

$this->response->file('uploads'.DS.$file['File']['filename'], array(
    'download' => true,
    'id'       => $file['File']['filename'],
    'name'     => $file['File']['filename']
));
$this->response->type($extension);
return $this->response;

2 个答案:

答案 0 :(得分:3)

确保没有其他名为File的模型。如果是这样 - 它显然会覆盖cakephp的核心效用/文件模型。

答案 1 :(得分:1)

  

“它表示目录未找到或无法读取。”

因此,您确认该目录已存在。您没有验证它是否对您的Web服务器用户可读。检查目录本身以及目录中文件的文件权限。

要快速修复,您可以暂时将权限更改为777,以查看是否可以解决您的问题。如果是,那么您知道这只是确保文件权限正确的问题。不要将权限保留在777,因为这是不安全的!

通常,您拥有755权限的目录,以及具有644权限的文件或与此类似的文件。

更新:目录权限完全独立于XAMP。他们是一个操作系统的东西。在Mac上,您导航到finder中的文件,然后您可以右键单击并选择“获取信息”以查看和更改权限。我不使用Windows - 但如果你谷歌“更改文件权限窗口”然后出现堆,例如:http://www.wikihow.com/Change-File-Permissions-on-Windows-7

作为一个单独的问题,阅读文件权限管理将是一个好主意。你肯定需要了解它是如何运作的,因为你可以继续构建Cake网站或任何网站。