ASP.NET直接下載檔案__.net

來源:互聯網
上載者:User

一. 服務端通過Response輸出相應的HTTP Response Headers資訊,和要下載的檔案的資料來把檔案發送到用戶端,HTTP Response Headers表現在html檔案中是下面的形式:
<meta http-equiv="Content-Type" content="text/htm ">
http-equiv表示是Headers的名稱,content表示這個Headers的值

二. 首先,要輸出檔案的MIME類型:
Page.Response.AddHeader( "Content-Type", “MIME類型” );

三. 其次,要輸出下載的檔案的開啟位置和檔案名稱:
Page.Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName );
content-disposition 的 HTTP response header 允許指定文檔表示的資訊。使用這種 header ,你就可以將文檔指定成單獨開啟(而不是在瀏覽器中開啟),還可以根據使用者的操作來顯示。如果使用者要儲存文檔,你還可以為該文檔建議一個檔案名稱。這個建議名稱會出現在 Save As 對話方塊的“檔案名稱”欄中。
attachment ―― 表示作為附件發送到用戶端,用戶端將單獨開啟此檔案。
inline ―― 表示將在瀏覽器中開啟這個檔案。
filename ―― 表示發送到用戶端檔案的檔案名稱。

四. 準備發送到用戶端的檔案資料:
不管什麼類型的檔案都要先轉成byte類型的數組,然後將這個byte數組用Response.BinaryWrite方法輸出到用戶端。

   string path ="G://download//down.txt";
   System.IO.FileInfo file = new System.IO.FileInfo(path);
   Response.Clear();
   Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name));

   Response.AddHeader("Content-Length", file.Length.ToString());
   Response.ContentType = "application/octet-stream";
   Response.WriteFile(file.FullName);
   Response.End();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.