首页 > 学院 > 开发设计 > 正文

朋友封装的一个ASP.NET上传文件的方法

2019-11-17 01:39:59
字体:
来源:转载
供稿:网友

朋友封装的一个asp.net上传文件的方法

朋友做了asp.net开发多年,做了这个,自我感觉封装得还不错!!!代码如下:

C#代码收藏代码
  1. #region上传文件的方法
  2. ///<summary>
  3. ///上传文件方法
  4. ///</summary>
  5. ///<paramname="myFileUpload">上传控件ID</param>
  6. ///<paramname="allowExtensions">允许上传的扩展文件名类型,如:string[]allowExtensions={".doc",".xls",".PPT",".jpg",".gif"};</param>
  7. ///<paramname="maxLength">允许上传的最大大小,以M为单位</param>
  8. ///<paramname="savePath">保存文件的目录,注意是绝对路径,如:Server.MapPath("~/upload/");</param>
  9. ///<paramname="saveName">保存的文件名,如果是""则以原文件名保存</param>
  10. PRivatevoidUpload(FileUploadmyFileUpload,string[]allowExtensions,intmaxLength,stringsavePath,stringsaveName)
  11. {
  12. //文件格式是否允许上传
  13. boolfileAllow=false;
  14. //检查是否有文件案
  15. if(myFileUpload.HasFile)
  16. {
  17. //检查文件大小,ContentLength获取的是字节,转成M的时候要除以2次1024
  18. if(myFileUpload.PostedFile.ContentLength/1024/1024>=maxLength)
  19. {
  20. thrownewException("只能上传小于2M的文件!");
  21. }
  22. //取得上传文件之扩展文件名,并转换成小写字母
  23. stringfileExtension=System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
  24. stringtmp="";//存储允许上传的文件后缀名
  25. //检查扩展文件名是否符合限定类型
  26. for(inti=0;i<allowExtensions.Length;i++)
  27. {
  28. tmp+=i==allowExtensions.Length-1?allowExtensions[i]:allowExtensions[i]+",";
  29. if(fileExtension==allowExtensions[i])
  30. {
  31. fileAllow=true;
  32. }
  33. }
  34. if(fileAllow)
  35. {
  36. try
  37. {
  38. stringpath=savePath+(saveName==""?myFileUpload.FileName:saveName);
  39. //存储文件到文件夹
  40. myFileUpload.SaveAs(path);
  41. }
  42. catch(Exceptionex)
  43. {
  44. thrownewException(ex.Message);
  45. }
  46. }
  47. else
  48. {
  49. thrownewException("文件格式不符,可以上传的文件格式为:"+tmp);
  50. }
  51. }
  52. else
  53. {
  54. thrownewException("请选择要上传的文件!");
  55. }
  56. }
  57. #endregion

以下是测试的代码:

C#代码收藏代码
  1. try
  2. {
  3. string[]ss={".jpg",".gif"};
  4. stringpath=Request.MapPath("~/upload/");
  5. Upload(FileUpload1,ss,1,path,"");
  6. Label1.Text="文件上传成功!";
  7. }
  8. catch(Exceptionex)
  9. {
  10. Label1.Text=ex.Message;
  11. }

以前一直没有认真的学习异常处理,今天弄了一下还发现异常处理还蛮好的。。。起码代码量上感觉比if..else..少。。。呵呵。。。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表