2

以下标头适用于 IE,但不适用于 FF

<%@ Page Language="C#" ContentType="text/csv" Inherits="System.Web.Mvc.ViewPage"%>
<% Response.AddHeader("Content-Disposition", "filename=report.csv;attachment"); %>

在 FF 中,FF 中的建议名称显示为不带扩展名的“report”。

4

5 回答 5

4

filename只是Content-Dispostion的一个参数。所以你必须交换两者:

<% Response.AddHeader("Content-Disposition", "attachment;filename=report.csv"); %>
于 2009-07-20T14:55:40.757 回答
3

我目前正在使用如下代码:

response.AddHeader("Content-Disposition", "attachment; filename=\"data.csv\"");

在我的日常工作中——效果很好。您还确定这不是您的操作系统或启用了“隐藏已知文件类型的扩展名”选项的任何东西吗?(我知道 Windows 有这个选项,它让我发疯)

于 2009-07-20T15:12:42.087 回答
2

最近我也遇到了这个问题,终于解决了

要使其在 Firefox 中正常工作,请确保在文件名中正确放置引号并且文件名中没有空格

所以这里是做基本测试的示例

这将起作用:

Response.ClearContent();
Response.ContentType = "text/csv";
Response.AddHeader("Content-Disposition", "attachment;filename="+ "MyOrders"+ "_Date_"
+DateTime.Now.ToString("d")+".csv");

这也将起作用

string myfilename = "MyOrders" + "_Date_" + DateTime.Now.ToString("d") + ".csv";
Response.AppendHeader("Content-Disposition", string.Format("attachment;filename={0}", 
myfilename));

//here you can check using the break point,weather you are using any extra quotes in filename

这在 Firefox 中不起作用

Response.AddHeader("Content-Disposition", "attachment;filename="+ "MyOrders"+ "_Date_"
+DateTime.Now+".csv");

// because in DateTime.Now there is spaces in Time, Seconds , so firefox downloads file not 
//as csv but downloads it as File , may be a binary file or unknown file type

参考使用了 this , this , thisthis

感谢所有以某种方式提供帮助的人。

希望它可以帮助某人。

于 2015-09-03T10:24:40.973 回答
1

当我需要实现 CSV 生成和下载时,这个关于 CSV 生成的问题对我有帮助:How do I best generate a CSV (comma-delimited text file) for download with ASP.NET?

于 2009-07-20T15:10:02.903 回答
0

try "attachment; filename=\"report.csv\""(即带引号的文件名)

于 2009-07-20T14:55:17.700 回答