我需要能够下载所有PNG的图像子目录,而不是在浏览器窗口中打开。我正在使用IIS作为Web服务器。
有没有办法强制下载PNG?
答案 0 :(得分:27)
正如其他海报所说,你需要在服务有问题的PNG时,将HTTP Content-Disposition标题(附件值)添加到IIS生成的HTTP响应中。
不确定您使用的是哪个版本的IIS,但是:
IIS6
对于IIS7:
或者,将此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配置,这将非常有用。