ASP教程 PHP教程 JSP教程 CGI教程 XML教程
  • ASP.NET教程
  • JAVA教程
    当前位置:教程 > 程序设计 > ASP.NET教程 > 正文

    ASP.NET中文件上传下载方法集合

    编辑:教程网 来源:网络 时间:2011年10月29日 15:46
    【O】在我们说明的方法之前考虑以下的问题:
    文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括:

      1、如何解决文件上传大小的限制

      2、以文件形式保存到服务器

      3、转换成二进制字节流保存到数据库以及下载方法

      4、上传Internet上的资源

    一、文件大小限制的问题

    首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文件来自定义最大文件大小,如下:

      <httpRuntime executionTimeout="300" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"/>这样上传文件的最大值就变成了4M,但这样并不能让我们无限的扩大MaxRequestLength的值,因为ASP.NET会将全部文件载入内存后,再加以处理。解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody和ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据。实现方法如下:

    IServiceProviderprovider=(IServiceProvider)HttpContext.Current;
    HttpWorkerRequestwr=(HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
    byte[]bs=wr.GetPreloadedEntityBody();
    .
    if(!wr.IsEntireEntityBodyIsPreloaded())
    {
     intn=1024;
     byte[]bs2=newbyte[n];
     while(wr.ReadEntityBody(bs2,n)>0)
     {
      ..
     }
    }
      这样就可以解决了大文件的上传问题了、

    二、上传的文件直接保存到服务器上

    下面我们来介绍如何以文件形式将客户端的一个文件上传到服务器并返回上传文件的一些基本信息。

      首先我们定义一个类,用来存储上传的文件的信息(返回时需要)。

    public class FileUpLoad
    {
     public FileUpLoad()
     {}
     /**//// <summary>
     /// 上传文件名称
     /// </summary>
     public string FileName
     {
      get
      {
       return fileName;
      }
      set
      {
       fileName = value;
      }
     }
     private string fileName;

     /**//// <summary>
     /// 上传文件路径
     /// </summary>
     public string FilePath
     {
      get
      {
       return filepath;
      }
      set
      {
       filepath = value;
      }
     }
     private string filepath;

     /**//// <summary>
     /// 文件扩展名
     /// </summary>
     public string FileExtension
     {
      get
      {
       return fileExtension;
      }
      set
      {
       fileExtension = value;
      }
     }
     private string fileExtension;
    }
      另外我们还可以在配置文件中限制上传文件的格式(App.Config):

    <?XML version="1.0" encoding="gb2312" ?>
    <Application>
    <FileUpLoad>
    <Format>.jpg|.gif|.png|.bmp</Format>
    </FileUpLoad>
    </Application>

      这样我们就可以开始写我们的上传文件的方法了,如下:

    public FileUpLoad UpLoadFile(HTMLInputFile InputFile,string filePath,string myfileName,bool isRandom)
    {
     FileUpLoad fp = new FileUpLoad();
     string fileName,fileExtension;
     string saveName;

     //
     //建立上传对象
     //
     HttpPostedFile postedFile = InputFile.PostedFile;

     fileName = System.IO.Path.GetFileName(postedFile.FileName);
  • 原文来自 教程网 转载请注明:http://www.websmill.com/chengxu/aspnet/30178.html

  • 上一篇:妙用Cache检验用户是否重复登陆
  • 下一篇:ASP.Net本地化/国际化解决方案原理和代码示例