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

详细的资料,请参考如下两个链接

 

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 属性来代替您修改该页的 <form> 元素。您还会注意到,FileUpload 控件被转换为一个 HTML <input type="file">元素。

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

ASP:FileUpload ID="FileUpload1" runat="server" /><br /> <br /> <ASP:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Upload File" /> <br /> <br /> <ASP:Label ID="Label1" runat="server"></ASP:Label> <ASP:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ErrorMessage="Only mp3, m3u or mpeg files are allowed!" ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*)) +(.mp3|.MP3|.mpeg|.MPEG|.m3u|.M3U)$" ControlToValidate="FileUpload1"></ASP:RegularExpressionValidator> <br /> <ASP:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="This is a required field!" ControlToValidate="FileUpload1"></ASP:RequiredFieldValidator>

 

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

posted @ 2009-04-27 10:35  陈希章  阅读(568)  评论(0编辑  收藏  举报