zoukankan      html  css  js  c++  java
  • C# 上传文件通用类 (转)

    View Code
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    /**//// <summary>
    /// Cls_Upfile 的摘要说明
    /// </summary>
    ///
    namespace AllSheng
    ...{
    public class upload
    ...{
    变量
    #region 变量

    System.Web.HttpPostedFile postedFile;

    protected string localFileName;//原文件名(含扩展名)
    protected string localFileExtension;//原扩展名
    protected long localFileLength;//原文件大小
    protected string localFilePath;//原文件路径

    protected string saveFileName;//保存的文件名(含扩展名)
    protected string saveFileExtension;//保存的扩展名
    //protected long saveFileLength;//保存的文件大小
    protected string saveFilePath;//保存文件的服务器端的完整路径
    protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径


    private string path = null;
    private string fileType = null;
    private int sizes = 0;

    #endregion

    upload():初始化变量
    #region upload():初始化变量
    /**//// <summary>
    /// 初始化变量
    /// </summary>
    public upload()
    ...{
    path
    = @"uploadimages"; //上传路径
    fileType = "jpg|gif|bmp|jpeg|png|rar|doc";
    sizes
    = 200; //传文件的大小,默认200KB
    }
    #endregion

    设置传入的值:Path
    /Sizes/FileType#region 设置传入的值:Path/Sizes/FileType
    /**//// <summary>
    /// 设置上传路径,如:uploadimages
    /// </summary>
    public string Path
    ...{
    set
    ...{
    path
    = @"" + value + @"";
    }
    }

    /**//// <summary>
    /// 设置上传文件大小,单位为KB
    /// </summary>
    public int Sizes
    ...{
    set
    ...{
    sizes
    = value;
    }
    }

    /**//// <summary>
    /// 设置上传文件的类型,如:jpg|gif|bmp
    /// </summary>
    public string FileType
    ...{
    set
    ...{
    fileType
    = value;
    }
    }
    #endregion

    SaveAs()上传文件
    #region SaveAs()上传文件

    public string SaveAs(System.Web.HttpFileCollection files)
    ...{
    string myReturn = "";
    try
    ...{
    for (int iFile = 0; iFile < files.Count; iFile++)
    ...{
    postedFile
    = files[iFile];
    //获得文件的上传的路径
    localFilePath = postedFile.FileName;
    //判断上传文件路径是否为空
    if (localFilePath == null || localFilePath == "")
    ...{
    //message("您没有上传数据呀,是不是搞错了呀!");
    //break;

    continue;
    }
    else
    ...{
    判断文件大小
    #region 判断文件大小
    //获得上传文件的大小
    localFileLength = postedFile.ContentLength;
    //判断上传文件大小
    if (localFileLength >= sizes * 1024)
    ...{
    message(
    "上传的图片不能大于" + sizes + "KB");
    break;
    }
    #endregion

    文件夹
    #region 文件夹
    //获取保存文件夹路径
    saveFileFolderPath = getSaveFileFolderPath(path);
    #endregion

    文件名
    #region 文件名
    //获得原文件名(含扩展名)
    localFileName = System.IO.Path.GetFileName(postedFile.FileName);

    saveFileName
    = DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" +

    "ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"
    #endregion

    扩展名
    #region 扩展名
    //获取原文件扩展名
    localFileExtension = getFileExtension(localFileName);

    //如果为真允许上传,为假则不允许上传
    if (localFileExtension == "")
    ...{
    message(
    "目前本系统支持的格式为:" + fileType);
    }
    //得到保存文件的扩展名,可根据需要更改扩展名
    saveFileExtension = localFileExtension;
    #endregion

    //得到保存文件的完整路径
    saveFilePath = saveFileFolderPath + saveFileName + saveFileExtension;
    postedFile.SaveAs(saveFilePath);
    myReturn
    = myReturn + ((myReturn == "" || myReturn == null) ? "" : "|") + path.TrimStart(new char[] ...{ '' }) +

    saveFileName
    + saveFileExtension;
    //以下对文章的内容进行一些加工

    System.Web.HttpContext.Current.Response.Write

    (
    "<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension +

    " "+" border=0 />'</SCRIPT>");

    }
    }
    }
    catch
    ...{
    //异常
    message("出现未知错误!");
    myReturn
    = null;
    }
    return myReturn;
    }
    #endregion

    getSaveFileFolderPath(...):获得保存的文件夹的物理路径
    #region getSaveFileFolderPath(...):获得保存的文件夹的物理路径
    /**//// <summary>
    /// 获得保存的文件夹的物理路径
    /// 返回保存的文件夹的物理路径,若为null则表示出错
    /// </summary>
    /// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>
    /// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>
    private string getSaveFileFolderPath(string format)
    ...{
    string mySaveFolder = null;
    try
    ...{
    string folderPath = null;
    //以当前时间创建文件夹,
    //!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!
    if (format.IndexOf("yyyy") > -1 || format.IndexOf("MM") > -1 || format.IndexOf("dd") > -1 || format.IndexOf("hh") > -1 ||

    format.IndexOf(
    "mm") > -1 || format.IndexOf("ss") > -1 || format.IndexOf("ff") > -1)
    ...{
    //以通用标准时间创建文件夹的名字
    folderPath = DateTime.UtcNow.ToString(format);
    mySaveFolder
    = System.Web.HttpContext.Current.Server.MapPath(".") + @"" + folderPath + @"";
    }
    else
    ...{
    mySaveFolder
    = System.Web.HttpContext.Current.Server.MapPath(".") + format;
    }
    System.IO.DirectoryInfo dir
    = new System.IO.DirectoryInfo(mySaveFolder);
    //判断文件夹否存在,不存在则创建
    if (!dir.Exists)
    ...{
    dir.Create();
    }
    }
    catch
    ...{
    message(
    "获取保存路径出错");
    }
    return mySaveFolder;
    }

    #endregion

    getFileExtension(...):获取原文件的扩展名
    #region getFileExtension(...):获取原文件的扩展名
    /**//// <summary>
    /// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.
    /// </summary>
    /// <param name="myFileName">原文件名</param>
    /// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>
    private string getFileExtension(string myFileName)
    ...{
    string myFileExtension = null;
    //获得文件扩展名
    myFileExtension = System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;
    //分解允许上传文件的格式
    if (myFileExtension != "")
    ...{myFileExtension
    = myFileExtension.ToLower();//转化为小写
    }
    string[] temp = fileType.Split('|');
    //设置上传的文件是否是允许的格式
    bool flag = false;
    //判断上传的文件是否是允许的格式
    foreach (string data in temp)
    ...{
    if (("." + data) == myFileExtension)
    ...{
    flag
    = true;
    break;
    }
    }
    if (!flag)
    ...{
    myFileExtension
    = "";//不能设置成null,因为null表明文件无后缀名;
    }
    return myFileExtension;
    }
    #endregion

    message(...):弹出消息框
    #region message(...):弹出消息框
    /**//// <summary>
    /// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)
    /// </summary>
    /// <param name="msg">显示内容</param>
    /// <param name="url">跳转路径</param>
    private void message(string msg, string url)
    ...{
    System.Web.HttpContext.Current.Response.Write(
    "<script language=javascript>alert('" + msg + "');window.location='" + url +

    "'</script>");
    }

    /**//// <summary>
    /// 弹出消息框,显示内容(msg),无跳转
    /// </summary>
    /// <param name="msg">显示内容</param>
    private void message(string msg)
    ...{
    System.Web.HttpContext.Current.Response.Write(
    "<script language=javascript>alert('" + msg + "');</script>");
    }
    #endregion
    }
    }


    Upfile.aspx.cs


    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class Inc_Upfile : System.Web.UI.Page
    ...{
    protected void Page_Load(object sender, EventArgs e)
    ...{
    //Cut By 梦溪苑。
    }
    protected void Button1_Click(object sender, EventArgs e)
    ...{
    AllSheng.upload UpFiles
    = new AllSheng.upload();


    //HttpPostedFile File = FileUpload1.PostedFile;
    // AllSheng.UploadObj.PhotoSave("/", FileUpload1);
    HttpFileCollection files = HttpContext.Current.Request.Files;
    UpFiles.Path
    = "../UpLoadfiles";
    String ReStr
    = UpFiles.SaveAs(files).ToString();
    Label1.Text
    = ReStr;
    UpFiles
    = null;
    }
  • 相关阅读:
    【转载】超级实用且不花哨的js代码大全 -----高级应用(一)
    【 Date 对象 参考手册】
    js随机数random()方法
    【转载】js数组的操作
    【转载】js数组和json的区别
    干货----004----MySQL忘记root密码怎么办?
    PHP框架——TP_0001----ThinkPHP常用配置
    干货----003----乱码解决方法
    Python之路【第二十六篇】:xml模块
    Python之路【番外篇1】:使用Python创建照片马赛克
  • 原文地址:https://www.cnblogs.com/Mr0909/p/2048035.html
Copyright © 2011-2022 走看看