2009-06-24 175 views
9

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

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

+0

Serverfault.com可能是一个更好的地方来问这个问题。 – Nate 2009-06-24 19:13:19

+1

那么他不知道它的nothisfault.com! – 2009-06-25 13:15:19

回答

1

所有的解决方案我试图让这个它会在其他浏览器下载IE除外。 IE试图成为“有用的”,并决定它认为最好的服务器客户端,在这种情况下,显示浏览器中的PNG文件。

总是有这样做的有人指出的程序化的方式。但我并不想走这条路。

最后我单独压缩了67个PNG文件,并链接到这些。它不漂亮,但它的工作原理。

谢谢大家的帮助。

2

你不能,如果你直接服务于PNG图像,但如果您使用ASP,您可以添加:

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

你有这个头发送到浏览器:

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

我不知道如何使用IIS来做到这一点。

27

作为其他海报说,则需要添加HTTP内容处理标头,与所连接的一个值,以便在问题服务于PNG图像时由IIS生成的HTTP响应。

不知道你使用的是什么版本的IIS的不过是:

IIS6

  1. 在IIS管理器中选择与PNG文件的目录,然后打开属性对话框
  2. 单击HTTP报头选项卡。
  3. 在自定义HTTP标题部分中,单击添加。
  4. 出现一个对话框。在“自定义标题名称”字段中输入“Content-disposition”。在“自定义标头值字段中输入‘附件’
  5. 您可能需要重新启动IIS(IISRESET)

对于IIS7:

  1. 在IIS管理器中选择与目录PNG文件并选择Features视图
  2. 双击HTTP Response Headers项目,然后在右侧菜单中选择Add选项
  3. 出现一个对话框在“Name”字段中输入“Content-disposition “。在”值“字段中输入”附件”。
  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> 

这应该迫使PNG图像从该目录服务是可下载。

+1

这不适用于IE。 – RedWolves 2009-06-25 13:09:07

0

也许,我的答案是过时的,但希望随着其他海报说,这可能是有用的人......

,你需要添加HTTP“内容处置”响应头。

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

所以,如果你只需要使用命令行来添加这个漂亮的HTTP响应头,你可以使用这样的结构:

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

这将增加HTTP“内容处置”响应头为你的“/路径/到/ images'文件夹中的'默认网站'。

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

相关问题