2012-07-19 200 views
4

我有一個使用C#的網頁,我希望用戶能夠點擊鏈接(或鏈接按鈕或按鈕,我不挑剔),並有「另存爲」對話窗口出現這樣他們可以下載文件。該文件本身位於另一臺服務器上,因此我必須使用絕對路徑(i:\ division \ department \ publicfiles \ filename.pot)。有誰知道這是怎麼做到的嗎?從鏈接下載文件

我在這裏查了一下這個問題,有人提出了webClient.DownloadFile。除非我不能使用它,因爲它要求您已經知道用戶想要將文件下載到他們的計算機上。基本上我要找的是當你點擊一個鏈接並選擇「另存爲」時發生的情況,但是當你點擊一個鏈接時會發生什麼。

謝謝

回答

4

「文件本身位於另一臺服務器上」給我聽起來像它可能不會被髮布到網上,因此沒有按」沒有URL。因此,在這種情況下,簡單的錨標籤將不起作用。我認爲你正在尋找Response.TransmitFile()

當他們點擊鏈接時,您需要發送文件並明確設置內容類型和內容處置標題。將內容處理標題設置爲attachment將彈出另存爲對話框。贊(未經測試):

Response.ContentType = "application/x-pot";  
Response.AppendHeader("Content-Disposition","attachment; filename=filename.pot");  
Response.TransmitFile(@"i:\division\department\publicfiles\filename.pot");  
Response.End(); 
+0

謝謝,這完全是我一直在尋找和完美工作。 – Alverant 2012-07-19 16:19:03

+0

這完全按照需要工作,謝謝! – tylerlindell 2016-10-04 17:20:53

2

你可以像這樣做,

<a href="http://www.yoursite.com/folders/yourfile.pdf" target="_blank" > click to download file </a> 
+0

把**目標=「_空白」**將是很好的! :) – 2012-07-19 14:59:15

+0

謝謝@ huMpty duMpty,更新。 – Adil 2012-07-19 15:00:06

+0

這將在另一個窗口中打開文件。不要將它下載到客戶端的計算機上。 – Alverant 2012-07-19 15:41:19

0

有了HTML5,你可以只使用新屬性download在錨標記。

的代碼看起來像

<a download href="path/to/the/download/file"> Clicking on this link will force download the file</a> 

它適用於Firefox和Chrome最新版本。我應該提到我沒有在IE中檢查它嗎? :P

+0

嗨!我得到失敗 - 單擊鏈接時出現網絡錯誤! – Vijayaraghavan 2017-05-08 15:22:59