asp.net文件分块下载的实现代码

发布时间:2020-02-10编辑:脚本学堂
本文介绍下,asp.net编程中实现文件分块下载的一例代码,有需要的朋友参考下吧。

asp.net实现文件的分块下载,代码如下:
 

复制代码 代码示例:
protected void Button3_Click(object sender, EventArgs e)  
{
string fileName = "aaa.zip";//客户端保存的文件名  
string filePath = Server.MapPath("DownLoad/aaa.zip");//路径  
 
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();  
}  
}