2009-09-05 31 views
42

我的应用程序允许用户将他们的数据作为csv文件下载。这些应该在电子表格应用程序中打开。在Linux系统上,我得到正确的提示,用OpenOffice打开。但是我的一些用户抱怨说,当他们下载文件时,它不会自动打开excel,而是要求他们选择应用程序。当他们从其他站点下载csv时,它会在excel中正确打开。什么设置为用于在电子表格应用程序中打开的csv文件的mimetype

我设置:
MIME类型:文本/ CSV
content_disposition:附件; filename.csv

回答

61

试试这个:

Content-Type: text/csv; name="filename.csv" 
Content-Disposition: attachment; filename="filename.csv" 

在Windows浏览器中的文件被下载,只有文件扩展名来确定相应的应用程序后的MIME类型被忽略。

此外,在Excel中正确打开.CSV文件很困难,因为默认分隔符是从打开CSV的计算机的区域设置中获取的。此外,编码不是根据文件内容或MIME类型确定的,因此任何非ASCII字符都很难工作。

+0

分隔符(或;)的选择可能与语言环境有关。我从来没有打开逗号分隔文件的麻烦。 – pavium 2009-09-05 06:31:56

+0

@pavium:你是对的,它很可能是区域设置中的“列表分隔符”。 – 2009-09-05 07:00:07

+13

设置内容类型的名称参数是恕我直言的无用... – 2011-07-11 11:29:04