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

  1. #region 上传文件的方法
  2. /// <summary>
  3. /// 上传文件方法
  4. /// </summary>
  5. /// <param name="myFileUpload">上传控件ID</param>
  6. /// <param name="allowExtensions">允许上传的扩展文件名类型,如:string[] allowExtensions = { ".doc", ".xls", ".ppt", ".jpg", ".gif" };</param>
  7. /// <param name="maxLength">允许上传的最大大小,以M为单位</param>
  8. /// <param name="savePath">保存文件的目录,注意是绝对路径,如:Server.MapPath("~/upload/");</param>
  9. /// <param name="saveName">保存的文件名,如果是""则以原文件名保存</param>
  10. private void Upload(FileUpload myFileUpload, string[] allowExtensions, int maxLength, string savePath, string saveName)
  11. {
  12. // 文件格式是否允许上传
  13. bool fileAllow = false;
  14. //检查是否有文件案
  15. if (myFileUpload.HasFile)
  16. {
  17. // 检查文件大小, ContentLength获取的是字节,转成M的时候要除以2次1024
  18. if (myFileUpload.PostedFile.ContentLength / 1024 / 1024 >= maxLength)
  19. {
  20. throw new Exception("只能上传小于2M的文件!");
  21. }
  22. //取得上传文件之扩展文件名,并转换成小写字母
  23. string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
  24. string tmp = "";   // 存储允许上传的文件后缀名
  25. //检查扩展文件名是否符合限定类型
  26. for (int i = 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. string path = savePath + (saveName == "" ? myFileUpload.FileName : saveName);
  39. //存储文件到文件夹
  40. myFileUpload.SaveAs(path);
  41. }
  42. catch (Exception ex)
  43. {
  44. throw new Exception(ex.Message);
  45. }
  46. }
  47. else
  48. {
  49. throw new Exception("文件格式不符,可以上传的文件格式为:" + tmp);
  50. }
  51. }
  52. else
  53. {
  54. throw new Exception("请选择要上传的文件!");
  55. }
  56. }
  57. #endregion

以下是测试的代码:

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

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

朋友封装的一个ASP.NET上传文件的方法的更多相关文章

  1. ASP.NET上传文件,已经上传的大小保存在session中,在另一个页面中读取session的值不行

    想自己做个ASP.NET上传文件时显示进度条的, 按照自己的想法,其实也就是显示每次已经上传的字节,从网上找到一个方法是能够把文件变成流以后再慢慢写入的,我在那个循环写入的时候每循环一次都把已经上传的 ...

  2. ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段

    ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...

  3. ASP.NET上传文件的几种方法

      //上传文件实例 if (fileDealer.HasFile)//判断文件是否存在        {            string filepath = "";     ...

  4. MUI上传文件的方法

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. ASP.Net上传文件

    在做Web项目时,上传文件是经常会碰到的需求.ASP.Net的WebForm开发模式中,封装了FileUpload控件,可以方便的进行文件上传操作.但有时,你可能不希望使用ASP.Net中的服务器控件 ...

  6. asp.net 上传文件超过了最大请求长度

    今天系统遇到了一个问题,上传4m以上的文件,uploadify就会报错:超过了最大请求长度. 开始我以为是设置的大小,可是后来我看了uploadify的fileSizeLimit=1024*10,也就 ...

  7. asp.net上传文件超过了最大请求长度[转]

    错误消息:超过了最大请求长度    错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S.   解决方案 1. 修改web.config文件可以改变这个默认值            ...

  8. ASP.NET上传文件的三种基本方法

    ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. Test.aspx关 ...

  9. asp.net 上传文件

    文件上传实例 公司产品中一直是采用 flash 实现文件上传功能,但用户的需求多了以后遇到了越来越多难以解决的问题,最后试着用硕正提供的freeform.小型页面控件来解决. 硕正文件上传的实现途径有 ...

随机推荐

  1. 读《it小小鸟》有感

    我一直认为大学就是一个自由的舒适的学习环境,没有人可以干扰你限制你,以至于我到了大学之后只剩下了颓废的生活.每天上课玩手机,下课玩电脑,吃饭叫外卖,从不去锻炼,周末就熬夜通宵,状态越来越差,导致我逐渐 ...

  2. Spring1()

    目的: 降低Java开发的复杂性 使用策略: 基于POJO的轻量级和最小侵入式的编程 通过依赖注入和面向接口实现松耦合 基于切面和惯例进行声明式编程 通过切面和模版减少样式代码 依赖注入:由Sprin ...

  3. 5th 各组作品alpha发布体会

    1.  俄罗斯方块   武志远 可以进行游戏,界面很友好,游戏运行也很流畅,并找到两名同学现场体验,游戏完成度很好. 2.  连连看游戏  张金生 可以进行游戏,实现了背景音乐播放等附加功能,界面清晰 ...

  4. 成功解决JSP和Servlet的中文乱码问题

    表单提交时出现乱码: 在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式.所以请求的时候便有get请求和post请求.以前我 ...

  5. json_decode遇到的编码问题

    初入csdn,就最近遇到的简单问题做一个功能解释; json_encode和json_decode只针对utf8字符有效,如果遇到其他编码比如gbk,需要进行转码然后解析: header(" ...

  6. chrome 常用插件集锦

    stylish 改变浏览器CSS样式

  7. hdu-题目1421:搬寝室

    http://acm.hdu.edu.cn/showproblem.php?pid=1421 搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  8. UVA11736_Debugging RAM

    题目绝对够水,我就不详细说明了. 直接上代码吧.只是提示一下要用 unsigned long long. (不知道我不用字典树为什么会超时,肿么搞的) #include <iostream> ...

  9. BZOJ 2957 楼房重建(线段树区间合并)

    一个显而易见的结论是,这种数字的值是单调递增的.我们修改一个数只会对这个数后面的数造成影响.考虑线段树划分出来的若干线段. 这里有两种情况: 1.某个线段中的最大值小于等于修改的数,那么这个线段的贡献 ...

  10. bzoj4754[JSOI2016]独特的树叶

    这个题....别人写得怎么都....那么短啊? 我怎么....WA了好几次啊....怎么去loj扒了数据才调出来啊? 这个算法...怎么我还是不知道对不对啊 怎么回事啊怎么回事啊怎么回事啊? 请无视上 ...