2009-06-24 133 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配置,這可能很有用。

相關問題