asp.net大文件下载
一个可尝试的方案,使用二进制流下载,下载地址是诸如 http://www.abc.com/down.apsx?fileid=911199 这样的连接,在 down 页面进行权限判断,比如是否登录了,当前用户的点数是否满足 911199 对应的文件的下载点数 等等
二进制下载实例代码,支持特大文件下载
string downFilePath = @ "D:\openSUSE-10.2-GM-DVD-i386.iso "; // test with 3.8GB, ok // Server.MapPath( "~/files/somefile.iso ");
System.IO.FileInfo downFileInfo = new System.IO.FileInfo(downFilePath);
if (!downFileInfo.Exists) throw new Exception( "文件不存在。 ");
const int CHUNK_SIZE = 10000; // 指定块大小
byte[] buffer = new byte[CHUNK_SIZE];
Response.Clear();
// fails to down the big file with both the following methods
// error: System.ArgumentOutOfRangeException: 大小参数必须介于零和最大的 Int32 值之间。
// Response.WriteFile(downFilePath);
// OR
// Response.TransmitFile(downFilePath); // ASP.NET 2.0 supported
//
using (System.IO.FileStream iStream = System.IO.File.OpenRead(downFilePath)) {
long dataLengthToRead = iStream.Length;
Response.ContentType = "application/octet-stream ";
Response.AddHeader( "Content-Disposition ",
"attachment; filename= " + Server.UrlPathEncode(downFileInfo.Name)); // 对文件名进行编
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注
- 聊聊.net程序设计——浅谈使用VS2010建模拓展(下
- .NET简谈互操作(四:基础知识之Dispose非托管内存
- Web Service学习笔记(4)
- MVC3+Entity Framework 实现投票系统(二)
- asp.net DataTable和Dataset序列化成Json格式
- JQuery+Asp.net MVC实现用户名重名查询
- .NET设计模式:工厂方法模式(Factory Method)[1]
- 使用ASP.NET MVC3+EF+Jquery制作文字直播系统(四
- .net架构的最后思考(箴言)



