zoukankan      html  css  js  c++  java
  • 在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为单位

  • 相关阅读:
    洛谷—— P2234 [HNOI2002]营业额统计
    BZOJ——3555: [Ctsc2014]企鹅QQ
    CodeVs——T 4919 线段树练习4
    python(35)- 异常处理
    August 29th 2016 Week 36th Monday
    August 28th 2016 Week 36th Sunday
    August 27th 2016 Week 35th Saturday
    August 26th 2016 Week 35th Friday
    August 25th 2016 Week 35th Thursday
    August 24th 2016 Week 35th Wednesday
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1444412.html
Copyright © 2011-2022 走看看