通过 HTTP 标头下载 CSV 文件时出现问题



所以尝试这样做:

header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo $fields;

也尝试过和许多其他人。

header("Content-type: text/csv");

然而,发生的事情是,MySQL数据只是回显到浏览器。

这是我用Firebug抓取的HTTPheaderResponse:

Date    Wed, 18 May 2011 14:15:18 GMT
X-Powered-By    PHP/5.1.6
Content-disposition attachment;filename=MyVerySpecial.csv
Connection  close
Content-Length  992
Server  Apache/2.2.3 (Red Hat)

编辑:请注意,这是来自 JQuery .post() 的返回,如果这会影响它,我正在尝试这个。

那么,有谁知道为什么会出现这个问题?我不知所措。

谢谢

首先,一定要将 header() 的第二个参数设置为 true,这是强制设置标头:

header('Content-Type: text/csv');

如果您知道下载的大小,您应该:

header('Content-Length: '.strlen($fields));

最后,确保$fields实际上是 CSV 格式的字符串。

您不能直接打印数组并期望浏览器自动将其转换为 CSV。

正确的MIME类型是text/csv。 试试看。

尝试将Content-type标记为 application/downloadapplication/force-download 。这应该强制浏览器打开保存对话框。

相关内容

  • 没有找到相关文章

最新更新