在ASP.NET 中上传或者下载文件

本文介绍了在ASP.NET中实现文件上传与下载的方法,包括使用FileUpload控件上传文件及不同场景下的文件下载策略,如动态生成链接、Response对象的应用等。
该篇文章是我于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

Joe Stagner

本文将介绍以下内容:

•从 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 属性来代替您修改该页的

元素。您还会注意到, FileUpload 控件被转换为一个 HTML 元素。

可以使用正则表达式验证器对文件类型进行验证

ASP:FileUpload ID="FileUpload1" runat="server" />



"^(([a-zA-Z]:)|(//{2}/w+)/$?)(//(/w[/w].*)) +(.mp3|.MP3|.mpeg|.MPEG|.m3u|.M3U)$" ControlToValidate="FileUpload1">

 

通过修改httpruntime属性的maxrequestlenght可以设定最大允许上传文件的大小。以KB为单位

作者:陈希章
出处:http://blog.youkuaiyun.com/chen_xizhang
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值