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)); // 对文件名进行编
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- 使用HttpWebRequest下载经过重定向的文件
- .Net插件框架的实现及分析(二)
- ASP.ENT前台更改绑定数据的日期格式
- .NET类库中发现设计模式:策略模式
- Add View -> Strongly-typed view ->Model Class
- Asp.net MVC源码分析--UrlRoutingModule与Service location的
- DCOM--高效率主从服务器程序的新概念
- C#高级编程:使用XPath命名空间中的类[2]
- .NET简谈设计模式之(装饰者模式性能问题?)
- 让asp.net mvc的Action支持jQuery直接提交的javascript对



