程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# asp.net中四種文件下載方法

C# asp.net中四種文件下載方法

編輯:C#入門知識

[csharp]
//TransmitFile實現下載 
protected void Button1_Click(object sender, EventArgs e) 

 
 
    Response.ContentType = "application/x-zip-compressed"; 
    Response.AddHeader("Content-Disposition", "attachment;filename=8月份報表.zip"); 
    string filename = Server.MapPath("DownLoad/8月份報表.zip"); 
    //指定編碼 防止中文文件名亂碼 
    Response.HeaderEncoding = System.Text.Encoding.GetEncoding("gb2312"); 
    Response.TransmitFile(filename); 

 
//WriteFile實現下載 
protected void Button2_Click(object sender, EventArgs e) 

    string fileName = "asd.txt";//客戶端保存的文件名 
    string filePath = Server.MapPath("DownLoad/aaa.txt");//路徑 
 
    FileInfo fileInfo = new FileInfo(filePath); 
    Response.Clear(); 
    Response.ClearContent(); 
    Response.ClearHeaders(); 
    Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); 
    Response.AddHeader("Content-Length", fileInfo.Length.ToString()); 
    Response.AddHeader("Content-Transfer-Encoding", "binary"); 
    Response.ContentType = "application/octet-stream"; 
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); 
    Response.WriteFile(fileInfo.FullName); 
    Response.Flush(); 
    Response.End(); 

 
//WriteFile分塊下載 
protected void Button3_Click(object sender, EventArgs e) 

 
    string fileName = "aaa.txt";//客戶端保存的文件名 
    string filePath = Server.MapPath("DownLoad/aaa.txt");//路徑 
    System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); 
    if (fileInfo.Exists == true) 
    { 
        const long ChunkSize = 102400;//100K 每次讀取文件,只讀取100K,這樣可以緩解服務器的壓力 
        byte[] buffer = new byte[ChunkSize]; 
 
        Response.Clear(); 
        System.IO.FileStream iStream = System.IO.File.OpenRead(filePath); 
        long dataLengthToRead = iStream.Length;//獲取下載的文件總大小 
        Response.ContentType = "application/octet-stream"; 
        Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName)); 
        while (dataLengthToRead > 0 && Response.IsClientConnected) 
        { 
            int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//讀取的大小 
            Response.OutputStream.Write(buffer, 0, lengthRead); 
            Response.Flush(); 
            dataLengthToRead = dataLengthToRead - lengthRead; 
        } 
        Response.Close(); 
    } 

 
//流方式下載 
protected void Button4_Click(object sender, EventArgs e) 

    string fileName = "aaa.txt";//客戶端保存的文件名 
    string filePath = Server.MapPath("DownLoad/aaa.txt");//路徑 
 
    //以字符流的形式下載文件 
    FileStream fs = new FileStream(filePath, FileMode.Open); 
    byte[] bytes = new byte[(int)fs.Length]; 
    fs.Read(bytes, 0, bytes.Length); 
    fs.Close(); www.2cto.com
    Response.ContentType = "application/octet-stream"; 
    //通知浏覽器下載文件而不是打開 
    Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); 
    Response.BinaryWrite(bytes); 
    Response.Flush(); 
    Response.End(); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved