• C# 通用上传文件类


    1、Upfile.aspx:
    1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Upfile.aspx.cs" Inherits="Inc_Upfile" %>
    2.  
    3.  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
    4.  
    5.  <html xmlns="http://www.w3.org/1999/xhtml"; >
    6.  <head runat="server">
    7.  <title>上传文件</title>
    8.  <link href="../Manage/Style.Css" type="text/css" rel=Stylesheet />
    9.  </head>
    10.  <body>
    11.  <form id="form1" runat="server">
    12.  <div style="left: 0px; clip: rect(0px auto auto 0px); position: absolute; top: 0px">
    13.  <asp:FileUpload ID="FileUpload1" runat="server" />
    14.  <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传文件" CssClass="btn2" />
    15.  <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
    16.  </form>
    17.  </body>
    18.  </html>

    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;
     }

     

    3、类文件:

     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
     }
     }

  • 相关阅读:
    css兼容性大坑
    JS获取元素CSS值
    calendar的一些操作
    java日期工具类
    redis的一些操作
    webstorm ES6 转 ES5
    基于时间的动画算法
    3434
    MySQL登陆知识
    MySQL密码知识点
  • 原文地址:https://www.cnblogs.com/top5/p/1637195.html
Copyright © 2020-2023  润新知