单多文件上传

using System; using System.IO; using System.Configuration; using System.Web;

namespace AspNetTest.Common {     /** <summary>     /// 单/多文件上传,,写的不好,见笑。.     /// </summary>     public class UploadFile     {         public UploadFile()         {             //             // TODO: 在此处添加构造函数逻辑             //         }                 //上传文件默认目录,例如: UploadFiles,该值在web.config中配置         private string initDirectory = ConfigurationSettings.AppSettings["Upload_InitDir"];         //是否启用决定路径,该路径一般会存在数据库中。若设为绝对路径,调用不用考虑相对路径问题         private bool useAbsolutePath = true;         //上传路径,例如:上传路径是 Pic,那么所有的图片都会存在 UploadFiles/Pic目录下,为空时全部存在 UploadFiles目录下         private string uploadPath = "";         //是否启用随机文件名,随机文件名的格式是:yyyyMMddhhmmss + 3位数的随机数         private bool useRandFileName;         //是否自动创建日期目录,若启用,会在上传文件目录下生成 2006/4/17 这3个目录         private bool createDateDir;         public bool UseAbsolutePath         {             get             {                 return useAbsolutePath;             }             set             {                 useAbsolutePath = value;             }         }         public string UploadPath         {             get             {                 return uploadPath;             }             set             {                 if(UseAbsolutePath)                 {                     uploadPath = GetApplicationPath();                 }                 uploadPath += this.initDirectory + "/";                 string valueExtended = value.ToString().Trim();                 if(valueExtended != "")                 {                     uploadPath += value;                     if(!valueExtended.EndsWith("/"))                     {                         uploadPath += "/";                     }                 }             }         }

        public bool UseRandFileName         {             get             {                 return useRandFileName;             }             set             {                 useRandFileName = value;             }         }         public bool CreateDateDir         {             get             {                 return createDateDir;             }             set             {                 createDateDir = value;             }         }         public void Upload()         {             HttpFileCollection hpc = HttpContext.Current.Request.Files;                            if(hpc != null)             {                 for(int i=0; i<hpc.Count; i++)                 {                     HttpPostedFile file = hpc[i];                     //判断大小                     int fileContentLength = file.ContentLength;                     if(fileContentLength < 1)                     {                         continue;;                     }                     int allowMaxSize = Convert.ToInt32(ConfigurationSettings.AppSettings["Upload_AllowMaxSize"]);                     if(fileContentLength > allowMaxSize * 1024 * 1024)                     {                         HttpContext.Current.Response.Write("最大上传的文件只允许<b>" + Convert.ToString(allowMaxSize / 1000) + "M</b>");                         return;                     }                     string fileName = Path.GetFileName(file.FileName);                     string fileContentType = Path.GetExtension(fileName).Remove(0, 1);                     string allowTypes = ConfigurationSettings.AppSettings["Upload_AllowTypes"];                     //判断类型                     if(("|"+allowTypes.ToLower()+"|").IndexOf("|"+fileContentType+"|") == -1)                     {                         HttpContext.Current.Response.Write("只允许上传的文件格式有:<b>" + allowTypes + "</b>");                         return;                     }                     //随机文件名                     if(UseRandFileName)                     {                         fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + (new Random()).Next(100, 1000).ToString() + "." + fileContentType;                     }                     string addPath = HttpContext.Current.Server.MapPath(UploadPath);                     if(!Directory.Exists(addPath))                     {                         Directory.CreateDirectory(addPath);                     }                     //创建日期目录                     if(CreateDateDir)                     {                         addPath += DateTime.Today.Year.ToString() + @"/";                         if(!Directory.Exists(addPath))                         {                             Directory.CreateDirectory(addPath);                         }                         addPath += DateTime.Today.Month.ToString().PadLeft(2, '0') + @"/";                         if(!Directory.Exists(addPath))                         {                             Directory.CreateDirectory(addPath);                         }                         addPath += DateTime.Today.Day.ToString().PadLeft(2, '0') + @"/";                         if(!Directory.Exists(addPath))                         {                             Directory.CreateDirectory(addPath);                         }                     }                     string filePath = addPath + fileName;                     file.SaveAs((filePath));                     HttpContext.Current.Response.Write("<br>文件(<b>"+ fileName +"</b>)上传成功!<br>地址:");                     HttpContext.Current.Response.Write(filePath + "<hr>");                     WriteFilePathToDB(filePath);                 }             }         }         public void WriteFilePathToDB(string path)         {             //将上传文件路径写入数据库         }         private string GetApplicationPath()         {             string appPath = HttpContext.Current.Request.ApplicationPath;             if(!appPath.EndsWith("/"))             {                 appPath += "/";             }             return appPath;         }         } }

调用:

UploadFile oUploadFile = new UploadFile();             oUploadFile.UseAbsolutePath = true;             oUploadFile.UploadPath = "Pic";             oUploadFile.CreateDateDir = true;             oUploadFile.UseRandFileName = true;             oUploadFile.Upload();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值