如何使用CSV MIMEtypes?

在我正在处理的Web应用程序中,用户可以单击指向CSV文件的链接。 没有为MIMEtypes设置标题,所以浏览器只是将其呈现为文本。 我想将这个文件作为一个.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上)

有没有我不知道的怪癖?

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

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

哪些应该适用于大多数主stream浏览器。

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

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

使用Internet Explorer时,您经常需要指定Pragma:公共标题以及下载才能正常运行。

 header('Pragma: public'); 

只是我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"');