以下标头适用于 IE,但不适用于 FF
<%@ Page Language="C#" ContentType="text/csv" Inherits="System.Web.Mvc.ViewPage"%>
<% Response.AddHeader("Content-Disposition", "filename=report.csv;attachment"); %>
在 FF 中,FF 中的建议名称显示为不带扩展名的“report”。
以下标头适用于 IE,但不适用于 FF
<%@ Page Language="C#" ContentType="text/csv" Inherits="System.Web.Mvc.ViewPage"%>
<% Response.AddHeader("Content-Disposition", "filename=report.csv;attachment"); %>
在 FF 中,FF 中的建议名称显示为不带扩展名的“report”。
filename
只是Content-Dispostion的一个参数。所以你必须交换两者:
<% Response.AddHeader("Content-Disposition", "attachment;filename=report.csv"); %>
我目前正在使用如下代码:
response.AddHeader("Content-Disposition", "attachment; filename=\"data.csv\"");
在我的日常工作中——效果很好。您还确定这不是您的操作系统或启用了“隐藏已知文件类型的扩展名”选项的任何东西吗?(我知道 Windows 有这个选项,它让我发疯)
最近我也遇到了这个问题,终于解决了
要使其在 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
感谢所有以某种方式提供帮助的人。
希望它可以帮助某人。
当我需要实现 CSV 生成和下载时,这个关于 CSV 生成的问题对我有帮助:How do I best generate a CSV (comma-delimited text file) for download with ASP.NET?
try "attachment; filename=\"report.csv\""
(即带引号的文件名)