CakePHP2 CakeResponse :: file()无法在Firefox中开始下载

时间:2017-01-24 09:51:03

标签: php file firefox cakephp download

我使用CakeResponse :: file()让用户下载文件,如下所述。

https://book.cakephp.org/2.0/en/controllers/request-response.html#cake-response-file

但是,我注意到它在Chrome,IE,Opera等中运行良好,除了Firefox。在Firefox中没有任何反应。

$this->response->file( $filepath, [
    'name' => $filename,
    'download' => true,
] );
return $this->response;

我的控制器代码基本上是这样的。看起来文件类型无关紧要。 Firefox出了什么问题?

1 个答案:

答案 0 :(得分:0)

您应该像这样下载link文件,它可以在所有浏览器中使用。的检测过

<?php echo $this->Html->link('Download', 
  array('controller' => 'Home',
  'action'=>'download'));
?>

家庭控制器中的代码

  public function download() {
    $this->response->file( $filepath, [
     'name' => $filename,
     'download' => true,
    ] );
   return $this->response;
  }

如果您通过ajax调用此下载功能,它将显示该文件而非下载。