c# .Net 1 g以上の大きなファイルをサーバからダウンロード

6031 ワード

string fileName = “a.zip”;//最終的にクライアントが保存するファイル名string file Path=サーバにダウンロードする.MapPath(“DownLoad/a.zip”);//サーバ上のファイルパスWriteFileブロックダウンロード
 public void xzcz(string fileName, string filePath)
{
     
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();
                }
                }