0

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

如此处所述: 有没有办法强制用户从 href 链接下载文件,而不是在浏览器窗口中打开它? 在这里: 使用 我目前正在使用的 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());

但这仍然提供开放选项。

有没有办法强制执行此操作,还是仅取决于用户浏览器设置。

4

2 回答 2

2

只需发送不同的 Content-Type (application/octet-stream):

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

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

- - 编辑 - -

今天,我知道了另一个标题字段,它可能解决了您的问题:

“X-Content-Type-Options: nosniff”

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

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

于 2012-08-15T16:39:26.293 回答
0

虽然这个问题很老,但我要回答......

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

Response.AddHeader("X-Download-Options", "noopen");
于 2013-04-26T09:28:20.820 回答