使用PHP/Apache2和Google Chrome下载文件

使用PHP/Apache2和Google Chrome下载文件,php,google-chrome,download,apache2,Php,Google Chrome,Download,Apache2,我正在使用的下载方法: 我有一个HTML中的“导出”按钮,单击该按钮会将一些数据发送到服务器 服务器处理数据,将CSV写入文件,无论写入是否成功,都会发送相应的JSON消息 收到成功消息后,我会打开一个窗口。使用正确的url和附加的文件名打开,开始下载 下载发生在Ubuntu 15.04的Firefox和Windows7的IE11上 但是,在Windows 7上的Google Chrome 45.0.2454.85 m上下载失败。它只是打开一个新的空白窗口,然后什么也没发生。我已清除浏览器缓

我正在使用的下载方法:

  • 我有一个HTML中的“导出”按钮,单击该按钮会将一些数据发送到服务器
  • 服务器处理数据,将CSV写入文件,无论写入是否成功,都会发送相应的JSON消息
  • 收到成功消息后,我会打开一个
    窗口。使用正确的url和附加的文件名打开
    ,开始下载
  • 下载发生在Ubuntu 15.04的Firefox和Windows7的IE11上
但是,在Windows 7上的Google Chrome 45.0.2454.85 m上下载失败。它只是打开一个新的空白窗口,然后什么也没发生。我已清除浏览器缓存。启动Chrome文件下载的正确方法是什么

下面是负责下载的PHP代码

header("Content-Description: File Transfer");
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=". basename($filename));
header("Expires: 0");
header("Cache-Control: must-revalidate");
header("Pragma: public");
header("Content-Length: ". filesize($filename));
ob_clean();
flush();
readFile($filename);

尝试在ob_clean()之后写入所有标题。 ob_clean()清除带有标题的所有数据