當前位置:編程學習大全網 - 源碼破解 - 如何在ASP.NET中下載文件

如何在ASP.NET中下載文件

但是這樣的下載有幾個問題:1. 無法下載不存在的文件:例如,我們若是想把程序動態(臨時)產生的文字,當作壹個文件下載的時候(也就是該文件其實原先並不是真的存在,而是動態產生的),就無法下載。2. 無法下載存儲於數據庫中的文件:這是類似的問題,該文件並沒有真的存在,只是被存放在數據庫中的某個位置(某筆記錄中的某個欄位)的時候,就無法下載。3. 無法下載不存在於Web文件夾中的文件:文件確實存在,但該文件夾並不是可以分享出來的Web文件夾,例如,該文件的位置在C:/winnt,您總不會想要把該文件夾當作Web文件夾吧?這時候,由於您無法使用Redirect指向該位置,所以無法下載。4. 下載文件後,原本的頁面將會消失。1. 這個文件可能是通過ASP.NET程序動態產生的,而不是確實存在於Server端的文件;2. 或是它雖然存在於伺服器端的某個實體位置,但我們並不想暴露這個位置(如果這個位置公開,很可能沒有權限的用戶也可以在網址欄上輸入URL直接取得!!!)3. 或是這個位置並不在網站虛擬路徑所在的文件夾中。(例如C:/Windows/System32...)  這時候,我們就得采用不同的方式:Shared Function DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FileBody As String)  WebForm.Response.ClearHeaders()  WebForm.Response.Clear()  WebForm.Response.Expires = 0  WebForm.Response.Buffer = True  WebForm.Response.AddHeader(Accept-Language, zh-tw)  '文件名稱  WebForm.Response.AddHeader(content-disposition, attachment; filename= & Chr(34) & System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) & Chr(34))  WebForm.Response.ContentType = Application/octet-stream  '文件內容  WebForm.Response.Write(FileBody)  WebForm.Response.End()End Function  上面這段代碼是下載壹個動態產生的文本文件,若這個文件已經存在於服務器端的實體路徑,則可以通過下面的函數:Shared Sub DownloadFile(ByVal WebForm As System.Web.UI.Page, ByVal FileNameWhenUserDownload As String, ByVal FilePath As String)  WebForm.Response.ClearHeaders()  WebForm.Response.Clear()  WebForm.Response.Expires = 0  WebForm.Response.Buffer = True  WebForm.Response.AddHeader(Accept-Language, zh-tw)  '文件名稱  WebForm.Response.AddHeader(content-disposition, attachment; filename= & Chr(34) & System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) & Chr(34))

  • 上一篇:我的極品是前任第二季
  • 下一篇:獨壹無二的微信網名情侶
  • copyright 2024編程學習大全網