使用IIS强制下载PNG而不是在浏览器中打开
我需要能够有一个子目录的图像所有PNG的下载,而不是在浏览器窗口打开。我正在为web服务器使用IIS使用IIS强制下载PNG而不是在浏览器中打开,iis,png,Iis,Png,我需要能够有一个子目录的图像所有PNG的下载,而不是在浏览器窗口打开。我正在为web服务器使用IIS 有没有办法强制PNG可下载?如果您直接提供PNG,则无法下载,但如果您使用ASP,则可以添加: Response.AddHeader("Content-Disposition", "attachment"); 您必须将此标题发送到浏览器: Content-Disposition:attachment; filename="downloaded.pdf" 我不知道如何使用IIS来实现这一点。正
有没有办法强制PNG可下载?如果您直接提供PNG,则无法下载,但如果您使用ASP,则可以添加:
Response.AddHeader("Content-Disposition", "attachment");
您必须将此标题发送到浏览器:
Content-Disposition:attachment; filename="downloaded.pdf"
我不知道如何使用IIS来实现这一点。正如其他海报所说,您需要在为相关PNG提供服务时,向IIS生成的HTTP响应添加HTTP内容处置头,该头的值为attachment 不确定您使用的IIS版本,但: IIS6
<?xml version="1.0"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="Content-Disposition" value="Attachment" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
这将迫使从该目录提供的png可以下载。我尝试过的所有解决方案都可以在除IE之外的其他浏览器中下载。IE试图提供“帮助”,并决定它认为最适合客户端的服务器,在这种情况下,是在浏览器中显示png文件 正如前面所指出的,总是有一种程序化的方法来实现这一点,但我并不想走这条路 最后,我将67个PNG文件单独压缩并链接到这些文件上。虽然不好看,但效果不错
谢谢大家的帮助。也许我的答案已经过时了,但希望它能对某人有用
正如其他海报所说,您需要添加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,这将非常有用。Serverfault.com可能是问这个问题的更好地方。他不知道它不是isfault.com!嗯,如果文件名包含URI保留字符,例如“:”.Gla,我过去在IE中遇到过这个头的问题d您找到了一个解决方法。无需重置IIS。所有web.config更改都可以动态工作。这也适用于IE9和IE10。事实上,我尝试过的所有浏览器(IE、Chrome、FF和Safari)这适用于JPG、PNG、MP3和MPG。在IIS Web.config中工作得非常好,可以保护用户有权将文件上载到的特定文件夹的内容(防止执行任何上载的脚本并强制进行下载对话框)。谢谢!谢谢。使用在IE 9、8和Firefox等中测试的server 2008和IIS 7.5,工作得非常好。。。