文件下载
来源:互联网 发布:2016chinajoy数据 编辑:程序博客网 时间:2024/05/22 16:03
FileStream r = null;
try
{
r = new FileStream(filepath, FileMode.OpenOrCreate);
//设置基本信息
Response.Buffer = false;
Response.AddHeader("Connection", "Keep-Alive");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + Path.GetFileName(HttpUtility.UrlEncode(filepath)));
Response.AddHeader("Content-Length", r.Length.ToString());
while (true)
{
//开辟缓冲区空间
byte[] buffer = new byte[1024];
//读取文件的数据
int leng = r.Read(buffer, 0, 1024);
if (leng == 0)//到文件尾,结束
break;
if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入
{
Response.BinaryWrite(buffer);
}
else
{
//读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块
byte[] b = new byte[leng];
for (int i = 0; i < leng; i++)
b[i] = buffer[i];
Response.BinaryWrite(b);
}
}
r.Close();//关闭下载文件
Response.End();//结束文件下载
}
catch (Exception e)
{
r.Close();//关闭下载文件
Response.End();//结束文件下载
string str = e.Message;
}
- 下载图片,下载文件
- 文件下载
- 文件下载
- 文件下载
- 文件下载
- 文件下载
- 文件下载
- 下载文件
- 文件下载
- 下载文件
- 文件下载
- 文件下载
- 下载文件
- 文件下载
- 下载文件
- 下载文件
- 文件下载
- 下载文件
- win8开发应用之二:管理应用生命周期和状态(使用 C# 和 XAML 的 Metro 风格应用)
- IOS开发之百度地图API应用
- 关于java和php的sign加密问题
- Objective-C研究院之数组对象(七)
- DictionarySync和ListSync 线程安全类
- 文件下载
- Wayland面纱 X Window前世今生
- MYSQL数据库导入导出
- android 图表工具推荐(柱状图 饼图 曲线图 栈图 仪表图) 开源工具
- Java多线程编程--(8)学习Java5.0 并发编程包--线程池、Callable & Future 简介
- 关于C#多线程、网络编程与计时器Timer的一点使用心得
- 2012.8.9 言无信,行无果
- linux下获取系统时间的方法
- 为什么我的帐号登录后显示为“系统帐号”(Welcome System Account)