從網絡瀏覽器下載圖像時出現問題。我想直接下載圖像,但是它在瀏覽器中打開。我正在使用asp.net。從瀏覽器下載圖像
我的HTML代碼:
<a href ="http://example.com/file/image.jpg" target="_blank" /> Download </a>
從網絡瀏覽器下載圖像時出現問題。我想直接下載圖像,但是它在瀏覽器中打開。我正在使用asp.net。從瀏覽器下載圖像
我的HTML代碼:
<a href ="http://example.com/file/image.jpg" target="_blank" /> Download </a>
你需要在這裏做的是修改HTTP標頭在請求瀏覽器中顯示的方式「文件對話框」框爲你的形象,而不是簡單地顯示它在屏幕上。
爲此,您需要修改Content-Disposition
標題並將其設置爲attachment
。在ASP.NET中做到這一點,你可以做到以下幾點:
Response.Clear()
Response.AppendHeader("Content-Disposition", "attachment; filename=somefilename")
但要確保你的文件作出迴應此之前你做。
你也可能要更改如下:
Response.ContentType = "image/jpeg"
這將允許瀏覽器regonise並顯示在文件對話框的圖像圖標。最後送的文件,你會再調用:
Response.TransmitFile(Server.MapPath("/myimage.jpg"));
Response.End();
但是請了解你這裏做的是什麼修改瀏覽器的服務器請求 - 它不是在綁定反正抓落實。
對downvote有何評論? –
要添加到此答案 - 爲了得到這個代碼,你必須把它放在一個ASHX處理程序(或者你可以使用一個空的ASPX頁面,但ASHX更適合)。因此,不是指向'image.jpg'的鏈接,而是指向'image.ashx',並且m.edmondson的代碼將位於.ashx.cs文件中。 (PS我不是downvoter) –
試試下面的方法(假設你使用C#)
Response.ContentType = "image/jpg";
Response.AppendHeader("Content-Disposition", "attachment; filename=myimage.jpg");
Response.TransmitFile(Server.MapPath("/images/image.jpg"));
Response.End();
相關答案 - http://stackoverflow.com/questions/7631110/no-more-postback-after-file-download-in -asp-net/7631182#7631182 – adatapost