在Firefox中下载csv文件的Mime Type问题,特别是在尝试在服务器上执行时

时间:2013-08-05 05:09:48

标签: c# csv httpresponse

我试图通过向响应添加标头amd mime类型以csv文件的形式下载数据。 当我在本地测试它时,它在所有浏览器中都能正常工作,但是当我在服务器或远程桌面上测试它们时,它在firefox中无效。真正发生了什么事情它是将数据转换为单独的值,但它没有将扩展名作为csv,如果我手动保存csv扩展名的文件很好,我无法弄清楚为什么它不能正常工作特别是在服务器上在firefox中,这是我的代码:

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}",
    string.IsNullOrEmpty(this.FileName) ? DFLT_CSVFILENAME : this.FileName)
);
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;

在此之后,我正在构建一个stringBuilder,并将数据写入响应。

所以,我的印象是设置标头和mime类型是一个问题。但他们看起来都很好,任何工作都可以....................

2 个答案:

答案 0 :(得分:0)

CSV的内容类型因浏览器而异,对于IE,它是“application / vnd.ms-excel”

答案 1 :(得分:0)

这里的问题是,我传递的文件名在单词之间有一些空格。 Fire Fox不会接受带有空格的文件名,而其他浏览器都会这样做。所以我只是删除了文件名中的空格然后就可以了。