2013-05-22 45 views
0

我在ASCX上有一個鏈接,我想要做的就是不用彈出窗口就進行文件下載提示。在沒有彈出窗口的情況下在ascx上下載文件鏈接

例如:

<a href="download.aspx">Download</a> 

然後在Download.aspx的Page_Load我有:

Dim dataAs String = "test" 

    Response.Clear() 
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat") 
    Response.AddHeader("Content-Length", achData.Length.ToString()) 
    Response.ContentType = "text/plain" 
    Response.Write(data) 
    Response.End() 

這是正確的方式?我的另一種方法是把代碼放在ASCX的回發

<asp:button text="download" id="theButton" /> 

的.vb

Public Sub theButton_Click() 
    Response.Clear() 
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat") 
    Response.AddHeader("Content-Length", achData.Length.ToString()) 
    Response.ContentType = "text/plain" 
    Response.Write(data) 
    Response.End() 

End Sub 
+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

你的問題需要更多細節。你想讓用戶下載一個文件或你想要的文字嗎? 來源是一個文件或只是你的數據,實際上是一個字符串。請註明 – Kiarash

+0

我不明白這個功能的用途是什麼theButton_Click –

回答

-1

內容部署可以是附件或內嵌,例如:

Response.AddHeader("Content-Disposition", "inline") 

如果您將它作爲附件,瀏覽器通常會顯示一個彈出窗口,詢問用戶是要打開還是保存文件。瀏覽器控制返回HTTP響應後發生的情況。默認的文件名可能是你建議的文件名,或者瀏覽器可能會決定完全忽略你的文件名,也可能使用ascx文件名(當我遇到它時,Firefox列爲錯誤,IE似乎認爲它是一個「功能」)。

但是,如果您將其設置爲內聯,則「文本/純文本」內容類型通常會在瀏覽器屏幕上彈出而不彈出。那是你要的嗎?

+0

如果我把它放在ASCX中會發生什麼? – Arcadian

+0

@ magic-c0d3r應該與aspx相同。請注意'Response.End()'結束您的HTTP響應(最好在按鈕點擊處理程序中)。那時,完全取決於用戶和客戶端瀏覽器接下來要做什麼。 – criticalfix

相關問題