以下标题适用于IE但不适用于FF
<%@ Page Language="C#" ContentType="text/csv" Inherits="System.Web.Mvc.ViewPage"%>
<% Response.AddHeader("Content-Disposition", "filename=report.csv;attachment"); %>
在FF中,FF中的建议名称显示为“报告”而没有扩展名。
答案 0 :(得分:4)
filename
只是Content-Dispostion的参数。所以你必须交换两个:
<% Response.AddHeader("Content-Disposition", "attachment;filename=report.csv"); %>
答案 1 :(得分:3)
我目前使用的代码如下:
response.AddHeader("Content-Disposition", "attachment; filename=\"data.csv\"");
在我的日常工作中 - 这很好用。您还确定这不是您的操作系统或任何具有“隐藏已知文件类型扩展名”的选项 - 启用了选项吗? (我知道Windows有这个选项,它让我发疯了)
答案 2 :(得分:2)
最近我也遇到了这个问题,终于得到了解决方案
要使它在firefox中正常工作,请确保在文件名中正确放置引号并且文件名中没有空格
所以here是进行基本测试的示例示例
这样可行:
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
感谢所有帖子的帮助。
希望它可以帮到某人。
答案 3 :(得分:1)
当我需要实施CSV生成和下载时,有关CSV生成的问题帮助了我:How do I best generate a CSV (comma-delimited text file) for download with ASP.NET?
答案 4 :(得分:0)
try "attachment; filename=\"report.csv\""
(即使用带引号的文件名)