强制用户下载而不是在浏览器中打开xlsx文件

时间:2012-08-15 16:35:26

标签: asp.net html download

我们有一些用户在我的网站上打开excel文件时需要很长时间。如果他们简单地保存为,然后快速打开它。 他们在其他网站上有同样的问题,所以这是他们身边的问题。 但有没有办法强制浏览器只提供保存而不提供开放?

如上所述: Is there a way to force the user to download a file from a href link rather than to open it in a browser window? 和这里: Forcing to download a file using PHP 我目前正在使用:

 Response.ContentType = "application/ms-excel";
 Response.AddHeader("content-disposition", "attachment; filename=Report.xlsx");
 Response.AddHeader("Content-Length", new System.IO.FileInfo(fileName).Length.ToString());

但这仍然提供开放选项。

有没有办法强迫这个或者它只是依赖于用户的浏览器设置。

2 个答案:

答案 0 :(得分:2)

只需发送不同的Content-Type(应用程序/八位字节流):

Response.ContentType = "application/octet-stream";

这样浏览器无法识别格式,只是建议保存文件。

---编辑----

今天,我开始了解另一个标题字段,这可能会解决您的问题:

“X-Content-Type-Options:nosniff”

描述:“唯一定义的值'nosniff'阻止Internet Explorer从声明的内容类型中嗅探响应。这也适用于谷歌浏览器,当下载扩展时。[31]”

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

答案 1 :(得分:0)

虽然问题已经很久了,但我要回答......

对于IE8 / 9和Chrome,这对我有用:

Response.AddHeader("X-Download-Options", "noopen");