如何使用CSV MIME类型?

时间:2008-12-29 18:08:38

标签: php csv http-headers mime

在我正在处理的Web应用程序中,用户可以单击指向CSV文件的链接。没有为mime类型设置标头,因此浏览器只是将其呈现为文本。我想将此文件作为.csv文件发送,因此用户可以使用calc,excel,gnumeric等直接打开它。

header('Content-Type: text/csv');
echo "cell 1, cell 2";

此代码在我的计算机上按预期工作(不是它一直是这样吗?)但在另一台计算机上不起作用。

我的浏览器是每晚构建的FF 3.0.1(在Linux上)。它不起作用的浏览器是IE 7和FF 3.0(在Windows上)

我不知道有什么怪癖吗?

4 个答案:

答案 0 :(得分:216)

您可以尝试通过执行以下操作强制浏览器打开“另存为...”对话框:

header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
echo "cell 1, cell 2";

哪个适用于大多数主流浏览器。

答案 1 :(得分:12)

您没有指定语言或框架,但以下标题用于文件下载:

"Content-Disposition: attachment; filename=abc.csv"

答案 2 :(得分:5)

使用Internet Explorer,您经常需要指定Pragma:public标头以及下载才能正常运行..

header('Pragma: public');

只需2美分..

答案 3 :(得分:2)

此代码可用于导出任何文件,包括csv

// application/octet-stream tells the browser not to try to interpret the file
header('Content-type: application/octet-stream');
header('Content-Length: ' . filesize($data));
header('Content-Disposition: attachment; filename="export.csv"');