2014-09-25 79 views
0

所以基本上我试图下载一个文件。CakePHP下载文件错误

我有行动:

public function getfile() { 
     $this->autoRender = false; 
     $accesskey = 'mrPQVeJF8VFXpSq'; 
     $data = $this->File->find('first', array('conditions' => array('File.accesskey =' => $accesskey))); 

     $filepath = substr($data['File']['path'], 17); 

     $this->response->file($filepath, array('download' => true, 'name' => $data['File']['name'])); 

     return $this->response; 
    } 

,这将引发一个错误:(我猜有$行这个 - >响应 - >文件())

Fatal Error Error: Class 'File' not found File: C:\wamp\www\project\lib\Cake\Network\CakeResponse.php Line: 1347

回答

1

File是一种Utility of cake。所以,将它用作模型可能会给你带来麻烦。我建议你改变它。阅读更多关于储备蛋糕和php文字here。这可能是你错误的原因。

而该错误的另一个原因是,你不在FilesController中,并试图在那里调用Find模型。对于阅读如何从其他控制器的负荷模型(寻找ClassRegistry::init$this->loadModel()

我只是猜测这里,因为你是“猜测线给人麻烦的是$this->response->file()”。你可能会得到,如果你更准确的响应不要猜测和调试到底是哪一行给你的错误。