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();
}
}