zoukankan      html  css  js  c++  java
  • 朋友封装的一个ASP.NET上传文件的方法

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

    C#代码  收藏代码
    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.        //检查是否有文件案  
    16.        if (myFileUpload.HasFile)  
    17.        {  
    18.            // 检查文件大小, ContentLength获取的是字节,转成M的时候要除以2次1024  
    19.            if (myFileUpload.PostedFile.ContentLength / 1024 / 1024 >= maxLength)  
    20.            {  
    21.                throw new Exception("只能上传小于2M的文件!");  
    22.            }  
    23.   
    24.            //取得上传文件之扩展文件名,并转换成小写字母  
    25.            string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();  
    26.            string tmp = "";   // 存储允许上传的文件后缀名  
    27.            //检查扩展文件名是否符合限定类型  
    28.            for (int i = 0; i < allowExtensions.Length; i++)  
    29.            {  
    30.                tmp += i == allowExtensions.Length - 1 ? allowExtensions[i] : allowExtensions[i] + ",";  
    31.                if (fileExtension == allowExtensions[i])  
    32.                {  
    33.                    fileAllow = true;  
    34.                }  
    35.            }  
    36.   
    37.            if (fileAllow)  
    38.            {  
    39.                try  
    40.                {  
    41.                    string path = savePath + (saveName == "" ? myFileUpload.FileName : saveName);  
    42.                    //存储文件到文件夹  
    43.                    myFileUpload.SaveAs(path);  
    44.                }  
    45.                catch (Exception ex)  
    46.                {  
    47.                    throw new Exception(ex.Message);  
    48.                }  
    49.            }  
    50.            else  
    51.            {  
    52.                throw new Exception("文件格式不符,可以上传的文件格式为:" + tmp);  
    53.            }  
    54.        }  
    55.        else  
    56.        {  
    57.            throw new Exception("请选择要上传的文件!");  
    58.        }  
    59.    }  
    60.    #endregion  



    以下是测试的代码: 

    C#代码  收藏代码
    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..少。。。呵呵。。。

  • 相关阅读:
    入门OJ 4187【周末舞会】
    入门OJ 1532【排队取款】
    洛谷 P3029 [USACO11NOV]【牛的阵容Cow Lineup】
    洛谷 P1638【逛画展】
    入门OJ 1256【排队】
    PKU 1945【Power Hungry Cows】
    RocketMQ重试机制和消息
    Java操作RocketMQ
    RocketMQ概述
    重定向机制
  • 原文地址:https://www.cnblogs.com/ranran/p/3881328.html
Copyright © 2011-2022 走看看