朋友封装的一个asp.net上传文件的方法
朋友做了asp.net开发多年,做了这个,自我感觉封装得还不错!!!代码如下:
C#代码
- #region上传文件的方法
- ///<summary>
- ///上传文件方法
- ///</summary>
- ///<paramname="myFileUpload">上传控件ID</param>
- ///<paramname="allowExtensions">允许上传的扩展文件名类型,如:string[]allowExtensions={".doc",".xls",".PPT",".jpg",".gif"};</param>
- ///<paramname="maxLength">允许上传的最大大小,以M为单位</param>
- ///<paramname="savePath">保存文件的目录,注意是绝对路径,如:Server.MapPath("~/upload/");</param>
- ///<paramname="saveName">保存的文件名,如果是""则以原文件名保存</param>
- PRivatevoidUpload(FileUploadmyFileUpload,string[]allowExtensions,intmaxLength,stringsavePath,stringsaveName)
- {
- //文件格式是否允许上传
- boolfileAllow=false;
- //检查是否有文件案
- if(myFileUpload.HasFile)
- {
- //检查文件大小,ContentLength获取的是字节,转成M的时候要除以2次1024
- if(myFileUpload.PostedFile.ContentLength/1024/1024>=maxLength)
- {
- thrownewException("只能上传小于2M的文件!");
- }
- //取得上传文件之扩展文件名,并转换成小写字母
- stringfileExtension=System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
- stringtmp="";//存储允许上传的文件后缀名
- //检查扩展文件名是否符合限定类型
- for(inti=0;i<allowExtensions.Length;i++)
- {
- tmp+=i==allowExtensions.Length-1?allowExtensions[i]:allowExtensions[i]+",";
- if(fileExtension==allowExtensions[i])
- {
- fileAllow=true;
- }
- }
- if(fileAllow)
- {
- try
- {
- stringpath=savePath+(saveName==""?myFileUpload.FileName:saveName);
- //存储文件到文件夹
- myFileUpload.SaveAs(path);
- }
- catch(Exceptionex)
- {
- thrownewException(ex.Message);
- }
- }
- else
- {
- thrownewException("文件格式不符,可以上传的文件格式为:"+tmp);
- }
- }
- else
- {
- thrownewException("请选择要上传的文件!");
- }
- }
- #endregion
以下是测试的代码:
C#代码
- try
- {
- string[]ss={".jpg",".gif"};
- stringpath=Request.MapPath("~/upload/");
- Upload(FileUpload1,ss,1,path,"");
- Label1.Text="文件上传成功!";
- }
- catch(Exceptionex)
- {
- Label1.Text=ex.Message;
- }
以前一直没有认真的学习异常处理,今天弄了一下还发现异常处理还蛮好的。。。起码代码量上感觉比if..else..少。。。呵呵。。。