CSV下载到IE 6的问题

时间:2009-06-07 17:45:53

标签: asp.net

我有一位朋友在测试我的网站时遇到问题,该网站为报告提供CSV导出。他说CSV输出到屏幕,没有创建文件。

它在我的IIS7,Vista和IE7设置上运行良好。我目前无法获得更多详细信息,但我想至少问一下:我的代码是否在下面,因为发送CSV足以与浏览器/版本无关?

    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "text/csv";
    string fileName = GetExportFileName();
    Response.AddHeader("Content-Disposition", "filename=" + fileName);
    dt.WriteCsv(Response.Output, false);
    Response.End();

我正在构建fileName以包含/分隔符的日期,这可能会导致问题,但它不会影响我的计算机,/会自动替换为{{1} }}

5 个答案:

答案 0 :(得分:1)

我也用过

Response.AddHeader("content-disposition", "attachment;filename=FileName.csv");

添加“附件”文本。您可以试着看看它对您的朋友是否有任何影响。

答案 1 :(得分:1)

IE6中存在一个已知问题,它没有正确支持内容处理元标记,并且在如何编写各种元标记方面存在一些问题。

This link from Scott Hanselman details everything about the issue.

此致 马西莫

答案 2 :(得分:1)

非常晚到这个派对,所以对于后来遇到这个问题的人来说更是如此。这与引用“没有HTTP标头将迫使IE6提供下载。

在PHP中,我将IE设置为以下标题,以显示“保存”按钮,而不仅仅是下载文件 - 或者在浏览器窗口中显示文件。

Response.AddHeader("X-Download-Options", "noopen");
Response.AddHeader("X-Content-Type-Options", "nosniff");

X标头用于表示它是非标准标头类型。适用于IE6。

答案 3 :(得分:0)

让IE提示下载的唯一确定方法是压缩CSV文件(即file.csv.zip或file.zip)。

没有HTTP标头会强制IE6提供下载。对于由IE“自动检测”的文本内容尤其如此。

您可以尝试使用Content-Disposition附件; filename = file.csv但我不确定它会一直有效。如果有,请确认。

答案 4 :(得分:0)

您没有提到您的朋友正在使用的浏览器。最后,它可能是一个错误或非标准的行为。

以下技术似乎对我有用:http://www.blackbeltcoder.com/Articles/asp/creating-downloadable-content-dynamically