所以尝试了这个:
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()我正在尝试这个,如果这会影响它。
所以,有谁知道为什么会出现这个问题?我很茫然。
感谢
答案 0 :(得分:2)
首先,确保将header()
的第二个参数设置为true,强制设置标题:
header('Content-Type: text/csv');
让您知道下载的大小,您应该:
header('Content-Length: '.strlen($fields));
最后,请确保$fields
实际上是CSV格式的字符串。
您无法直接打印数组,并希望浏览器自动将其转换为CSV格式。
答案 1 :(得分:1)
正确的MIME类型为text/csv
。试试吧。
答案 2 :(得分:0)
尝试将Content-type
标记为application/download
或application/force-download
。这应该强制浏览器打开保存对话框。