利用ASP.NET怎么实现?简单的文件上传类

  介绍

利用ASP.NET怎么实现?简单的文件上传类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

调用方法:

还是佛罗里达大学=new还是();/*可选参数*/uf.SetIsUseOldFileName(真正);//是否使用原始文件名作为新文件的文件名(默认:true),真正的原始文件名,假系统生成新文件名
  uf.SetFileDirectory (Server.MapPath(“/文件/temp3/?);//文件保存路径(默认:/上传)
  uf.SetFileType(“*”);//允许上传的文件类型,逗号分割,必须全部小写!*表示所有(默认值:. pdf, xls, .xlsx, . doc, docx, . txt, png, jpg, gif)
  uf.SetIsRenameSameFile(假);//重命名同名文件吗?//文件以时间分目录保存
  var消息=uf.Save (Request.Files [“Fileupload1"]);///文件/temp3/2015/4/xx.jpg”//文件以编号分目录保存
  var message2=uf.Save (Request.Files [“Fileupload1"],“001”;/*编号*/);///文件/temp3/001/xx.jpg”//返回信息
  var返回错误=message.Error;//判段是否上传成功
  var webPath=message.WebFilePath;//返回web路径
  var味精=message.Message;//返回上传信息
  var filePath=message.FilePath;//反回文件路径
  var isSuccess=消息。错误==false; 

代码:

使用系统;
  使用System.Collections.Generic;
  使用先;
  使用来;
  使用System.Security.Cryptography;
  使用包含;
  使用包含;
  使用System.Web.Hosting;
  
  
  名称空间SyntacticSugar
  {///& lt; summary>///* *描述:单文件上传类(暂时不支持多文件上传)///* *创始时间:2015-5-27///* *修改时间:-///* * sunkaixuan///& lt;/summary>
  公开课还是
  {
  
  私人ParamsModel参数;
  公众还是()
  {
  Params=new ParamsModel ()
  {
  FileDirectory=?upload"
  文件类型=皃df格式,xls, .xlsx . doc, docx, . txt, png, jpg, .gif"
  MaxSizeM=10,
  PathSaveType=PathSaveType.dateTimeNow,
  IsRenameSameFile=true
  };
  }///& lt; summary>///文件保存路径(默认:/上传)///& lt;/summary>
  公共空间SetFileDirectory(字符串fileDirectory)
  {
  如果(fileDirectory==null)
  {
  把新ArgumentNullException (“fileDirectory");
  }
  
  var isMapPath=正则表达式。IsMatch (fileDirectory @" [a - z]: \ \ \“, RegexOptions.IgnoreCase);
  如果(isMapPath)
  {
  fileDirectory=GetRelativePath (fileDirectory);
  }
  参数个数。FileDirectory=FileDirectory;
  }///& lt; summary>///是否使用原始文件名作为新文件的文件名(默认:真正的)///& lt;/summary>///& lt;参数name=癷sUseOldFileName"在真正的原始文件名,假系统生成新文件名& lt;/param>
  公共空间SetIsUseOldFileName (bool isUseOldFileName)
  {
  参数个数。IsUseOldFileName=IsUseOldFileName;
  }///& lt; summary>///允许上传的文件类型,逗号分割,必须全部小写!*表示所有(默认值:. pdf, xls, .xlsx, . doc, docx, . txt, png, jpg, gif)///& lt;/summary>
  公共空间SetFileType(字符串文件类型)
  {
  参数个数。FileType=文件;
  }///& lt; summary>///允许上传多少大小(单位:米)///& lt;/summary>
  公共空间SetMaxSizeM(双maxSizeM)
  {
  参数个数。MaxSizeM=MaxSizeM;
  }///& lt; summary>///重命名同名文件吗?///& lt;/summary>///& lt;参数name=癷sRenameSameFile"祝辞:重命名,假覆盖& lt;/param>
  公共空间SetIsRenameSameFile (bool isRenameSameFile)
  {
  参数个数。IsRenameSameFile=IsRenameSameFile;
  }///& lt; summary>///保存表单文件///& lt;/summary>///& lt;参数name=皃ostFile"祝辞HttpPostedFile///& lt; returns> & lt;/returns>
  公共ResponseMessage保存(HttpPostedFile postFile)
  {
  返回CommonSave (postFile);
  }///& lt; summary>///保存表单文件,根据编号创建子文件夹///& lt;/summary>///& lt;参数name=皃ostFile"祝辞HttpPostedFile///& lt;参数name=皀umber"祝辞编号& lt;/param>///& lt; returns> & lt;/returns>
  公共ResponseMessage保存(HttpPostedFile postFile,字符串数量)
  {
  
  参数个数。PathSaveType=PathSaveType.code;
  _Number=数量;
  返回CommonSave (postFile);
  }///& lt; summary>///保存表单文件,根据HttpPostedFile///& lt;/summary>///& lt;参数name=皃ostFile"祝辞HttpPostedFile///& lt;参数name=癷sRenameSameFile"祝辞值为真的同名文件进行重命名,假覆盖原有文件& lt;/param>///& lt;参数name=癴ileName"在新的文件名& lt;/param>///& lt; returns> & lt;/returns>
  私人ResponseMessage CommonSave (HttpPostedFile postFile)
  {
  
  ResponseMessage瑞威尔=new ResponseMessage ();
  试一试
  {
  如果(postFile==null | | postFile。ContentLength==0)
  {
  TryError(瑞威尔,“没有文件!“);
  返回瑞威尔;
  }//文件名
  文件名=参数字符串。IsUseOldFileName, # 63;postFile。文件名:DateTime.Now.ToString (“yyyyMMddhhmmssms") + Path.GetExtension (postFile.FileName);//验证格式
  这一点。CheckingType(瑞威尔postFile.FileName);//验证大小
  这一点。CheckSize(瑞威尔postFile);
  
  如果(reval.Error)返回瑞威尔;
  
  
  字符串webDir=string.Empty;//获取存储目录
  var目录=etDirectory (ref webDir);
  var filePath=目录+文件名;
  如果(System.IO.File.Exists (filePath))
  {
  如果(Params.IsRenameSameFile)
  {
  filePath=目录+ DateTime.Now.ToString (“yyyyMMddhhssms") +“产生绯闻;+文件名;
  }
  其他的
  {
  System.IO.File.Delete (filePath);
  }
  }//保存文件
  postFile.SaveAs (filePath);
  瑞威尔。FilePath=FilePath;
  瑞威尔。FilePath=webDir +文件名;
  瑞威尔。文件名=文件名;
  瑞威尔。WebFilePath=webDir +文件名;
  返回瑞威尔;
  }
  捕获(异常交货)
  {
  TryError(瑞威尔ex.Message);
  返回瑞威尔;
  }
  }
  
  私人空间CheckSize (ResponseMessage消息,HttpPostedFile PostFile)
  {
  如果(PostFile。ContentLength/1024.0/1024.0比;Params.MaxSizeM)
  {
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

利用ASP.NET怎么实现?简单的文件上传类