婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在ASP.NET中下載文件的實現代碼

在ASP.NET中下載文件的實現代碼

熱門標簽:銅川小型外呼系統運營商 上海楊浦怎么申請申請400電話 山西防封卡電銷卡套餐 云南外呼電銷機器人系統 陜西人工外呼系統哪家好 廈門商鋪地圖標注 浙江外呼系統怎么安裝 海外地圖標注門市標 地圖標注多個行程
這是筆者常被問到的一個問題,如何通過ASP.NET來下載文件,這個問題可大可小,我們先從小的開始。當我們要讓用戶下載一個文件,最簡單的方式是通過Response.Redirect指令:

  Response.Redirect("test.doc")

  您可以把上面這行指令放在Button的Click事件當中,當用戶點擊按鈕之后,網頁就會被轉址到該word檔,造成下載的效果。

  但是這樣的下載有幾個問題:

1. 無法下載不存在的文件:例如,我們若是想把程序動態(臨時)產生的文字,當作一個文件下載的時候(也就是該文件其實原先并不是真的存在,而是動態產生的),就無法下載。
2. 無法下載存儲于數據庫中的文件:這是類似的問題,該文件并沒有真的存在,只是被存放在數據庫中的某個位置(某筆記錄中的某個欄位)的時候,就無法下載。
3. 無法下載不存在于Web文件夾中的文件:文件確實存在,但該文件夾并不是可以分享出來的Web文件夾,例如,該文件的位置在C:/winnt,您總不會想要把該文件夾當作Web文件夾吧?這時候,由于您無法使用Redirect指向該位置,所以無法下載。
4. 下載文件后,原本的頁面將會消失。

  典型的狀況是,我們要讓用戶下載一個.txt文件,或是.csv格式的Excel文件,但是...

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))
  WebForm.Response.ContentType = "Application/octet-stream"
  '文件內容
  WebForm.Response.Write(System.IO.File.ReadAllBytes(FilePath))
  WebForm.Response.End()
End Sub

上面這兩個下載文件的的函數,應可解決大多數開發人員在ASP.NET當中的文件下載問題。
您可能感興趣的文章:
  • ASP.NET Web Api 2實現多文件打包并下載文件的實例
  • ASP.NET(C#) Web Api通過文件流下載文件的實例
  • ASP.NET批量下載文件的方法
  • ASP.NET 在下載文件時對其重命名的思路及實現方法
  • asp.net C#實現下載文件的六種方法實例
  • ASP.NET中下載文件的幾種實例代碼
  • asp.net BackgroundWorker之在后臺下載文件
  • asp.net 下載文件時根據MIME類型自動判斷保存文件的擴展名
  • asp.net 下載文件時輸出文件內容
  • asp.net Web Services上傳和下載文件(完整代碼)
  • ASP.NET實現從服務器下載文件問題處理

標簽:萊蕪 常州 自貢 西雙版納 信陽 許昌 朔州 孝感

巨人網絡通訊聲明:本文標題《在ASP.NET中下載文件的實現代碼》,本文關鍵詞  在,ASP.NET,中,下載,文件,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在ASP.NET中下載文件的實現代碼》相關的同類信息!
  • 本頁收集關于在ASP.NET中下載文件的實現代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 新乐市| 农安县| 长子县| 伊宁县| 楚雄市| 凯里市| 兴化市| 灵璧县| 牟定县| 太康县| 张家界市| 西乌| 亳州市| 郓城县| 天柱县| 邵东县| 周至县| 乌兰察布市| 绵竹市| 浦东新区| 枣阳市| 美姑县| 罗山县| 永泰县| 敦煌市| 星座| 莲花县| 名山县| 邢台市| 沂水县| 宁明县| 关岭| 横峰县| 日土县| 通城县| 日喀则市| 阿坝县| 遂溪县| 昭觉县| 黑山县| 石首市|