我正在用 cakePHP 2.x 编写一个简单的应用程序。我需要允许用户上传和下载文件。上传工作正常,但我坚持下载操作。
我有一个控制器名称 Documents,其中包含下载操作:
public function download($id = null) {
$this->Document->recursive = -1;
$doc = $this->Document->find('first', array('conditions' => array('Document.id' => $id)));
$filename = $doc['Document']['file_file_name'];
$resp = new CakeResponse();
$resp->download(Configure::read('upload_dir').'upload'.DS.$id.'_'.$filename);
$resp->send();
}
是的,我没有检查文件是否存在等等......但这只是为了测试。所以下载方法中的路径类似于:/home/www-app/upload/$id_$filename
当然,文件存在并且两个路径是相等的。
但我从 chrome 得到以下错误:
Erreur 6 (net::ERR_FILE_NOT_FOUND) : File or Directory not found
我尝试了 $resp->file() 方法,但 cakePHP 似乎不知道该方法。
谢谢!