该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明! 陈希章原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/04/27/1444412.html原文标题:在ASP.NET 中上传或者下载文件 原文发表:2009/4/27 2:35:00 |
详细的资料,请参考如下两个链接
http://www.microsoft.com/china/msdn/library/webservices/asp.net/dnvs05Internals.mspx?mfr=true
将更智能的 ASP.NET 文件下载体验内置到您的 Web 应用程序中
发布日期: 2006-10-30 | 更新日期: 2006-10-30
本文将介绍以下内容:
•从 ASP.NET 站点进行动态下载
•生成即时链接
•可恢复下载和自定义处理程序
•自定义下载机制所涉及的安全性问题
代码下载位置:
Downloading2006_09.exe (174KB)
我的总结重点
1. 最简单的下载方式是动态生成链接,指向具体的文件。这样的话,不是很安全,因为用户可以完全清楚地知道具体的文件位置。
2. 最简单的动态下载方法是通过Response.WriteFile。但是对于大文件可能会有问题
3. 对于大文件,分块发送可能是更好的方式。
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", _ "attachment; filename=" & toDownload.Name)
然后用循环的方式,一次性读取一些字节,然后不断地Flush
4. 在ASP.NET 2.0中,还提供了Response.TransmitFile方法。不必在内存中对文件进行缓冲处理就可以将其发送到浏览器
5. 通过检测浏览器回发过来的Header里面的信息,可以进行断点续传。一般会通过一个专门的HttpHandler来实现
http://msdn.microsoft.com/zh-cn/library/aa479405.aspx
在 ASP.NET 2.0 中上载文件. 主要讲解了使用FileUpLoad控件
我的总结重点
注意的是,由于 FileUpload 控件位于该页上,因此 ASP.NET 2.0 通过添加相应的 enctype 属性来代替您修改该页的