如何在Firefox上命名文件以供下载?

时间:2009-07-20 14:49:19

标签: asp.net asp.net-mvc http firefox attachment

以下标题适用于IE但不适用于FF

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

在FF中,FF中的建议名称显示为“报告”而没有扩展名。

5 个答案:

答案 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

使用的引用thisthisthisthis

感谢所有帖子的帮助。

希望它可以帮到某人。

答案 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\""(即使用带引号的文件名)