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

时间:2009-06-24 19:09:36

标签: iis png

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

有没有办法强制下载PNG?

5 个答案:

答案 0 :(得分:27)

正如其他海报所说,你需要在服务有问题的PNG时,将HTTP Content-Disposition标题(附件值)添加到IIS生成的HTTP响应中。

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

IIS6

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

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

      <?xml version="1.0"?>
      <configuration>
        <system.webServer>
          <httpProtocol>
            <customHeaders>
              <clear />
              <add name="Content-Disposition" value="Attachment" />
            </customHeaders>
          </httpProtocol>
        </system.webServer>
      </configuration>
      

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

答案 1 :(得分:2)

如果直接提供PNG,则不能,但如果使用ASP,则可以添加:

Response.AddHeader("Content-Disposition", "attachment");

答案 2 :(得分:1)

您必须将此标头发送到浏览器:

Content-Disposition:attachment; filename="downloaded.pdf"

我不清楚如何使用IIS执行此操作。

答案 3 :(得分:1)

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

正如所指出的那样,总是采用编程方式。但我并不打算走那条路。

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

感谢大家的帮助。

答案 4 :(得分:0)

可能,我的答案已经过时,但希望它对某些人有用......

正如其他海报所说,你需要添加HTTP'Content-Disposition'响应标题。

如果您无法使用IIS管理器并且必须使用命令行,则可能会出现此问题。

因此,如果您只需要使用命令行添加这个漂亮的HTTP响应头,则可以使用这样的构造:

%systemroot%\system32\inetsrv\APPCMD set config "Default Web Site/path/to/images" /section:httpProtocol /+customHeaders.[name='Content-disposition',value='Attachment']

它将为“默认网站”的“/ path / to / images”文件夹添加HTTP“Content-Disposition”响应标题。

如果您使用几个脚本或BAT / CMD文件对IIS进行autimaticaly配置,这将非常有用。