详细的资料,请参考如下两个链接
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 属性来代替您修改该页的 <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为单位