强制PNG下载而不是在IIS浏览器中打开

Red*_*ves 9 iis png

我需要能够下载所有PNG的图像子目录,而不是在浏览器窗口中打开.我正在使用IIS作为Web服务器.

有没有办法强制PNG可下载?

Ama*_*ena 28

正如其他海报所说的那样,您需要将HTTP Content-Disposition标头(附件值)添加到IIS在为相关PNG提供服务时生成的HTTP响应中.

不确定您使用的是哪个版本的IIS,但是:

IIS6

  1. 在IIS管理器中,选择包含PNG文件的目录,然后打开"属性"对话框
  2. 单击HTTP标头选项卡.
  3. 在"自定义HTTP标头"部分中,单击"添加".
  4. 出现一个对话框.在"自定义标题名称"字段中,输入"内容处置".在"自定义标题值"字段中,输入"附件".
  5. 您可能必须重新启动IIS(iisreset)

对于IIS7:

  1. 在IIS管理器中,选择包含PNG文件的目录,然后选择"功能"视图.
  2. 双击HTTP Response Headers项,然后在右侧菜单中选择Add选项.
  3. 出现一个对话框.在"名称"字段中输入"内容处置".在"值"字段中,输入"附件".
  4. 您可能必须重新启动IIS(iisreset)

或者,将此web.config放在包含文件的文件夹中:

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="Content-Disposition" value="Attachment" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这应该强制可以下载从该目录提供的PNG.


Red*_*ves 1

我尝试过的所有解决方案都使其可以在除 IE 之外的其他浏览器中下载。IE 试图“提供帮助”,并决定它认为最好的客户端服务,在本例中是在浏览器中显示 png 文件。

正如所指出的,总是有一种编程方法可以做到这一点。但我并不想走那条路。

最后,我单独压缩了 67 个 PNG 文件并链接到这些文件。它不漂亮,但很有效。

感谢大家的帮助。