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>



2、Upfile.aspx.cs
  1. using System;   
  2.  using System.Data;   
  3.  using System.Configuration;   
  4.  using System.Collections;   
  5.  using System.Web;   
  6.  using System.Web.Security;   
  7.  using System.Web.UI;   
  8.  using System.Web.UI.WebControls;   
  9.  using System.Web.UI.WebControls.WebParts;   
  10.  using System.Web.UI.HtmlControls;   
  11.     
  12.  public partial class Inc_Upfile : System.Web.UI.Page   
  13.  ...{   
  14.  protected void Page_Load(object sender, EventArgs e)   
  15.  ...{   
  16.  //Cut By 梦溪苑。   
  17.  }   
  18.  protected void Button1_Click(object sender, EventArgs e)   
  19.  ...{   
  20.  AllSheng.upload UpFiles = new AllSheng.upload();   
  21.     
  22.     
  23.  //HttpPostedFile File = FileUpload1.PostedFile;   
  24.  // AllSheng.UploadObj.PhotoSave("/", FileUpload1);   
  25.  HttpFileCollection files = HttpContext.Current.Request.Files;   
  26.  UpFiles.Path = "../UpLoadfiles";   
  27.  String ReStr= UpFiles.SaveAs(files).ToString();   
  28.  Label1.Text = ReStr;   
  29.  UpFiles = null;   
  30.  }   
  31.  }  
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、类文件:
  1. using System;   
  2.  using System.Data;   
  3.  using System.Configuration;   
  4.  using System.Web;   
  5.  using System.Web.UI;   
  6.  using System.Web.UI.WebControls;   
  7.  using System.Web.UI.WebControls.WebParts;   
  8.  using System.Web.UI.HtmlControls;   
  9.     
  10.  /**//// <summary>   
  11.  /// Cls_Upfile 的摘要说明   
  12.  /// </summary>   
  13.  ///   
  14.  namespace AllSheng   
  15.  ...{   
  16.  public class upload   
  17.  ...{   
  18.  变量#region 变量   
  19.     
  20.  System.Web.HttpPostedFile postedFile;   
  21.     
  22.  protected string localFileName;//原文件名(含扩展名)   
  23.  protected string localFileExtension;//原扩展名   
  24.  protected long localFileLength;//原文件大小   
  25.  protected string localFilePath;//原文件路径   
  26.     
  27.  protected string saveFileName;//保存的文件名(含扩展名)   
  28.  protected string saveFileExtension;//保存的扩展名   
  29.  //protected long saveFileLength;//保存的文件大小   
  30.  protected string saveFilePath;//保存文件的服务器端的完整路径   
  31.  protected string saveFileFolderPath;//保存文件的服务器端的文件夹路径   
  32.     
  33.     
  34.  private string path = null;   
  35.  private string fileType = null;   
  36.  private int sizes = 0;  
  37.    
  38.  #endregion   
  39.     
  40.  upload():初始化变量#region upload():初始化变量   
  41.  /**//// <summary>   
  42.  /// 初始化变量   
  43.  /// </summary>   
  44.  public upload()   
  45.  ...{   
  46.  path = @"uploadimages"//上传路径   
  47.  fileType = "jpg|gif|bmp|jpeg|png|rar|doc";   
  48.  sizes = 200; //传文件的大小,默认200KB   
  49.  }  
  50.  #endregion   
  51.     
  52.  设置传入的值:Path/Sizes/FileType#region 设置传入的值:Path/Sizes/FileType   
  53.  /**//// <summary>   
  54.  /// 设置上传路径,如:uploadimages   
  55.  /// </summary>   
  56.  public string Path   
  57.  ...{   
  58.  set  
  59.  ...{   
  60.  path = @"" + value + @"";   
  61.  }   
  62.  }   
  63.     
  64.  /**//// <summary>   
  65.  /// 设置上传文件大小,单位为KB   
  66.  /// </summary>   
  67.  public int Sizes   
  68.  ...{   
  69.  set  
  70.  ...{   
  71.  sizes = value;   
  72.  }   
  73.  }   
  74.     
  75.  /**//// <summary>   
  76.  /// 设置上传文件的类型,如:jpg|gif|bmp   
  77.  /// </summary>   
  78.  public string FileType   
  79.  ...{   
  80.  set  
  81.  ...{   
  82.  fileType = value;   
  83.  }   
  84.  }  
  85.  #endregion   
  86.     
  87.  SaveAs()上传文件#region SaveAs()上传文件   
  88.     
  89.  public string SaveAs(System.Web.HttpFileCollection files)   
  90.  ...{   
  91.  string myReturn = "";   
  92.  try  
  93.  ...{   
  94.  for (int iFile = 0; iFile < files.Count; iFile++)   
  95.  ...{   
  96.  postedFile = files[iFile];   
  97.  //获得文件的上传的路径   
  98.  localFilePath = postedFile.FileName;   
  99.  //判断上传文件路径是否为空   
  100.  if (localFilePath == null || localFilePath == "")   
  101.  ...{   
  102.  //message("您没有上传数据呀,是不是搞错了呀!");   
  103.  //break;   
  104.     
  105.  continue;   
  106.  }   
  107.  else  
  108.  ...{   
  109.  判断文件大小#region 判断文件大小   
  110.  //获得上传文件的大小   
  111.  localFileLength = postedFile.ContentLength;   
  112.  //判断上传文件大小   
  113.  if (localFileLength >= sizes * 1024)   
  114.  ...{   
  115.  message("上传的图片不能大于" + sizes + "KB");   
  116.  break;   
  117.  }  
  118.  #endregion   
  119.     
  120.  文件夹#region 文件夹   
  121.  //获取保存文件夹路径   
  122.  saveFileFolderPath = getSaveFileFolderPath(path);  
  123.  #endregion   
  124.     
  125.  文件名#region 文件名   
  126.  //获得原文件名(含扩展名)   
  127.  localFileName = System.IO.Path.GetFileName(postedFile.FileName);   
  128.     
  129.  saveFileName = DateTime.UtcNow.ToString("yyyy" + "MM" + "dd" + "HH" + "mm" + "ss" + "ffffff");//"yyyy"+"MM"+"dd"+"HH"+"mm"+"ss"+"ffffff"  
  130.  #endregion   
  131.     
  132.  扩展名#region 扩展名   
  133.  //获取原文件扩展名   
  134.  localFileExtension = getFileExtension(localFileName);   
  135.     
  136.  //如果为真允许上传,为假则不允许上传   
  137.  if (localFileExtension == "")   
  138.  ...{   
  139.  message("目前本系统支持的格式为:" + fileType);   
  140.  }   
  141.  //得到保存文件的扩展名,可根据需要更改扩展名   
  142.  saveFileExtension = localFileExtension;  
  143.  #endregion   
  144.     
  145.  //得到保存文件的完整路径   
  146.  saveFilePath = saveFileFolderPath + saveFileName + saveFileExtension;   
  147.  postedFile.SaveAs(saveFilePath);   
  148.  myReturn = myReturn + ((myReturn == "" || myReturn == null) ? "" : "|") + path.TrimStart(new char[] ...{ '' }) + saveFileName + saveFileExtension;   
  149.  //以下对文章的内容进行一些加工   
  150.     
  151.  System.Web.HttpContext.Current.Response.Write("<script>parent.Article_Content___Frame.FCK.EditorDocument.body.innerHTML+='<img src=" + saveFileName + saveFileExtension + " "+" border=0 />'</SCRIPT>");   
  152.     
  153.  }   
  154.  }   
  155.  }   
  156.  catch  
  157.  ...{   
  158.  //异常   
  159.  message("出现未知错误!");   
  160.  myReturn = null;   
  161.  }   
  162.  return myReturn;   
  163.  }  
  164.  #endregion   
  165.     
  166.  getSaveFileFolderPath(...):获得保存的文件夹的物理路径#region getSaveFileFolderPath(...):获得保存的文件夹的物理路径   
  167.  /**//// <summary>   
  168.  /// 获得保存的文件夹的物理路径   
  169.  /// 返回保存的文件夹的物理路径,若为null则表示出错   
  170.  /// </summary>   
  171.  /// <param name="format">保存的文件夹路径 或者 格式化方式创建保存文件的文件夹,如按日期"yyyy"+"MM"+"dd":20060511</param>   
  172.  /// <returns>保存的文件夹的物理路径,若为null则表示出错</returns>   
  173.  private string getSaveFileFolderPath(string format)   
  174.  ...{   
  175.  string mySaveFolder = null;   
  176.  try  
  177.  ...{   
  178.  string folderPath = null;   
  179.  //以当前时间创建文件夹,   
  180.  //!!!!!!!!!!!!以后用正则表达式替换下面的验证语句!!!!!!!!!!!!!!!!!!!   
  181.  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)   
  182.  ...{   
  183.  //以通用标准时间创建文件夹的名字   
  184.  folderPath = DateTime.UtcNow.ToString(format);   
  185.  mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + @"" + folderPath + @"";   
  186.  }   
  187.  else  
  188.  ...{   
  189.  mySaveFolder = System.Web.HttpContext.Current.Server.MapPath(".") + format;   
  190.  }   
  191.  System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(mySaveFolder);   
  192.  //判断文件夹否存在,不存在则创建   
  193.  if (!dir.Exists)   
  194.  ...{   
  195.  dir.Create();   
  196.  }   
  197.  }   
  198.  catch  
  199.  ...{   
  200.  message("获取保存路径出错");   
  201.  }   
  202.  return mySaveFolder;   
  203.  }  
  204.    
  205.  #endregion   
  206.     
  207.  getFileExtension(...):获取原文件的扩展名#region getFileExtension(...):获取原文件的扩展名   
  208.  /**//// <summary>   
  209.  /// 获取原文件的扩展名,返回原文件的扩展名(localFileExtension),该函数用到外部变量fileType,即允许的文件扩展名.   
  210.  /// </summary>   
  211.  /// <param name="myFileName">原文件名</param>   
  212.  /// <returns>原文件的扩展名(localFileExtension);若返回为null,表明文件无后缀名;若返回为"",则表明扩展名为非法.</returns>   
  213.  private string getFileExtension(string myFileName)   
  214.  ...{   
  215.  string myFileExtension = null;   
  216.  //获得文件扩展名   
  217.  myFileExtension = System.IO.Path.GetExtension(myFileName);//若为null,表明文件无后缀名;   
  218.  //分解允许上传文件的格式   
  219.  if (myFileExtension != "")   
  220.  ...{myFileExtension = myFileExtension.ToLower();//转化为小写   
  221.  }   
  222.  string[] temp = fileType.Split('|');   
  223.  //设置上传的文件是否是允许的格式   
  224.  bool flag = false;   
  225.  //判断上传的文件是否是允许的格式   
  226.  foreach (string data in temp)   
  227.  ...{   
  228.  if (("." + data) == myFileExtension)   
  229.  ...{   
  230.  flag = true;   
  231.  break;   
  232.  }   
  233.  }   
  234.  if (!flag)   
  235.  ...{   
  236.  myFileExtension = "";//不能设置成null,因为null表明文件无后缀名;   
  237.  }   
  238.  return myFileExtension;   
  239.  }  
  240.  #endregion   
  241.     
  242.  message(...):弹出消息框#region message(...):弹出消息框   
  243.  /**//// <summary>   
  244.  /// 弹出消息框,显示内容(msg),点击"确定"后页面跳转到该路径(url)   
  245.  /// </summary>   
  246.  /// <param name="msg">显示内容</param>   
  247.  /// <param name="url">跳转路径</param>   
  248.  private void message(string msg, string url)   
  249.  ...{   
  250.  System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');window.location='" + url + "'</script>");   
  251.  }   
  252.     
  253.  /**//// <summary>   
  254.  /// 弹出消息框,显示内容(msg),无跳转   
  255.  /// </summary>   
  256.  /// <param name="msg">显示内容</param>   
  257.  private void message(string msg)   
  258.  ...{   
  259.  System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');</script>");   
  260.  }  
  261.  #endregion   
  262.  }   
  263.  }  
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 } }
引用通告地址: http://tmsoft.lsxy.com/trackback.php?tbID=284&extra=7199da

转载于:https://www.cnblogs.com/9who/archive/2008/07/28/1254487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值