Response.AddHeader无法在Chrome和Safari浏览器中使用

时间:2013-09-25 12:08:48

标签: c# asp.net

我使用以下代码下载文件,下载文件后打开我的网站页面,但它只能在Firefox浏览器中使用。它不适用于其他浏览器。

Response.AddHeader("Refresh", "3; url=http://www.mysite.com/");
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=myfile.pdf");
Response.TransmitFile(Server.MapPath("myfile.pdf"));
Response.End();

3 个答案:

答案 0 :(得分:1)

您无法可靠,跨浏览器,将文件推送到客户端,然后在一个HTTP响应中重定向。

只需创建一个显示您要显示的内容的着陆页,然后让该页面(重定向到)下载。

答案 1 :(得分:0)

使用此代码

Response.ClearContent();
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";

答案 2 :(得分:0)

我偶然发现了这件事 '使用双引号,因此Chrome中的文件名中包含逗号的文档是可以的 Response.AddHeader(“Content-Disposition”,“attachment; filename =”“”+ myfile.Filnavn&“”)

Chrome可能需要双引号