2012-03-28 49 views
2

在我的代碼中,我生成了幾個超鏈接,這些鏈接是直接鏈接到服務器中託管的PDF/Jpg/bitmap/Png/Docx/Xlsx/Pptx文件。如何強制超鏈接顯示打開/保存對話框,而不是在瀏覽器中打開它?

該代碼看起來有點像這樣。

private void PopulateLinks(string linkText, string URL) 
{ 
    DIV_download.innerHtml += "<a href='" + URL + "'>" + linkText + "</a> <br/>"; 
} 

問題是瀏覽器可以處理的任何文件,它在同一個選項卡中打開。有沒有辦法強制PDF和JPEG/Bitmap/Png文件的下載對話框?

由於我需要在客戶端,我不能使用內容處理方式,可以使用JavaScript或任何其他標記?我的客戶只使用Internet Explorer,所以如果它只適用於IE,它對我來說就足夠了。

+0

什麼你的意思是你需要這個客戶端嗎?你能修改.htaccess文件嗎? – mowwwalker 2012-03-28 04:56:31

+0

[強制PNG下載,而不是打開瀏覽器與IIS]可能的重複(http://stackoverflow.com/questions/1040328/force-png-to-download-instead-of-opening-in-browser-with- iis) – 2012-03-28 05:01:40

+0

我也在爲這個問題苦苦掙扎,試圖打開PDF文件的保存對話框。 有沒有辦法只使用客戶端JavaScript來做到這一點,而不需要在服務器端進行修改? – shabdar 2012-07-27 23:10:38

回答

0

我很肯定你不能做這個客戶端。但是,您可以將一個target = _blank屬性添加到鏈接標記。這將迫使它在新窗口中打開。或者你可以讓你的客戶點擊鏈接並保存目標。如果從http://www.jtricks.com/bits/content_disposition.html

<a href="javascript:void(0);" 
onclick="document.execCommand('SaveAs',true,'file.html');" 
>Save this page</a> 

此:

0

您可以在IE中使用DOM方法document.execCommand()做到這一點。您可能必須研究跨瀏覽器的兼容性。

也有在這個問題上的信息可能會感興趣的與非IE瀏覽器的工作: Cross-browser Save As .txt

3

嘗試在我的代碼代碼 例如 Content-Disposition: attachment屬性:

response.setHeader("Content-Disposition: attachment", "filename=\"" + filePath + "\""); 
相關問題