ASP.NET 文件下载代码
1
public static void DownLoad(Page page, string FileName)
2
{
3
try
4
{
5
System.IO.FileStream r = new System.IO.FileStream(FileName, System.IO.FileMode.Open);
6
//设置基本信息
7
page.Response.Buffer = false;
8
page.Response.AddHeader("Connection", "Keep-Alive");
9
page.Response.ContentType = "application/octet-stream";
10
page.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName(FileName));
11
page.Response.AddHeader("Content-Length", r.Length.ToString());
12
while (true)
13
{
14
//开辟缓冲区空间
15
byte[] buffer = new byte[1024];
16
//读取文件的数据
17
int leng = r.Read(buffer, 0, 1024);
18
if (leng == 0)//到文件尾,结束
19
break;
20
if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入
21
page.Response.BinaryWrite(buffer);
22
else
23
{
24
//读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块
25
byte[] b = new byte[leng];
26
for (int i = 0; i < leng; i++)
27
b[i] = buffer[i];
28
page.Response.BinaryWrite(b);
29
break;
30
}
31
}
32
r.Close();//关闭下载文件
33
HttpContext.Current.ApplicationInstance.CompleteRequest();//结束文件下载
34
page.Response.Flush();
35
page.Response.Close();
36
}
37
catch (System.Exception ex)
38
{
39
throw ex;
40
}
41
}
public static void DownLoad(Page page, string FileName)2
{3
try4
{5
System.IO.FileStream r = new System.IO.FileStream(FileName, System.IO.FileMode.Open);6
//设置基本信息7
page.Response.Buffer = false;8
page.Response.AddHeader("Connection", "Keep-Alive");9
page.Response.ContentType = "application/octet-stream";10
page.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName(FileName));11
page.Response.AddHeader("Content-Length", r.Length.ToString());12
while (true)13
{14
//开辟缓冲区空间15
byte[] buffer = new byte[1024];16
//读取文件的数据17
int leng = r.Read(buffer, 0, 1024);18
if (leng == 0)//到文件尾,结束19
break;20
if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入21
page.Response.BinaryWrite(buffer);22
else23
{24
//读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块25
byte[] b = new byte[leng];26
for (int i = 0; i < leng; i++)27
b[i] = buffer[i];28
page.Response.BinaryWrite(b);29
break;30
}31
}32
r.Close();//关闭下载文件33
HttpContext.Current.ApplicationInstance.CompleteRequest();//结束文件下载34
page.Response.Flush();35
page.Response.Close();36
}37
catch (System.Exception ex)38
{39
throw ex;40
}41
}

浙公网安备 33010602011771号