C# 上传文件通用类 (转)

mac2022-06-30  81

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

转载于:https://www.cnblogs.com/Mr0909/archive/2011/05/16/2048035.html

相关资源:http post方式上传文件(C#)
最新回复(0)