我现在一直在努力解决这个问题。我用这个从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;
答案 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网站或任何网站。