我们有一些用户在我的网站上打开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());
但这仍然提供开放选项。
有没有办法强迫这个或者它只是依赖于用户的浏览器设置。
答案 0 :(得分:2)
只需发送不同的Content-Type(应用程序/八位字节流):
Response.ContentType = "application/octet-stream";
这样浏览器无法识别格式,只是建议保存文件。
---编辑----
今天,我开始了解另一个标题字段,这可能会解决您的问题:
“X-Content-Type-Options:nosniff”
描述:“唯一定义的值'nosniff'阻止Internet Explorer从声明的内容类型中嗅探响应。这也适用于谷歌浏览器,当下载扩展时。[31]”
答案 1 :(得分:0)
虽然问题已经很久了,但我要回答......
对于IE8 / 9和Chrome,这对我有用:
Response.AddHeader("X-Download-Options", "noopen");