using System; using System.Data; using System.Configuration; 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; using System.IO; using System.Drawing; /**/ /// <summary>/// UploadFile 的摘要说明/// </summary> public class UploadFile ... { public UploadFile() ...{ //检查根目录,如果没有Temp,TempReadyImg,TempReadyImg1,那么就创建它 string strPath = HttpContext.Current.Server.MapPath("~/"); if (!File.Exists(strPath + "Temp")) ...{ FileStream fs = File.Create(strPath + "Temp"); //File.OpenRead(strPath + "Temp"); fs.Close(); fs.Dispose(); } if (!File.Exists(strPath + "TempReadyImg")) ...{ FileStream fs = File.Create(strPath + "TempReadyImg"); //File.OpenRead(strPath + "TempReadyImg"); fs.Close(); fs.Dispose(); } if (!File.Exists(strPath + "TempReadyImg1")) ...{ FileStream fs = File.Create(strPath + "TempReadyImg1"); //File.OpenRead(strPath + "TempReadyImg1"); fs.Close(); fs.Dispose(); } } /**//// <summary> /// 获得文件的二进制数据流 /// </summary> /// <param name="filePathFile">需要压制的文件路径和名称全字符串</param> /// <returns>文件二进制流的指针</returns> public byte[] GetTempReadyImgData(string filePathName) ...{ FileStream fs = new FileStream(filePathName, FileMode.Open); int nLength = (int)fs.Length; byte[] fileData = new byte[nLength]; fs.Read(fileData, 0, nLength); fs.Close(); return fileData; } /**//// <summary> /// 绑定上传图片到临时文件 /// </summary> /// <param name="fileUpload">上传图片的控件</param> /// <param name="imgPhoto">显示图片的Image控件的引用</param> /// <param name="clientScriptManager">当前页的客户端脚本管理器</param> /// <return>返回产生的临时文件的文件名(包括路径)</return> public string BindUploadPhotoToImage(FileUpload fileUpload, ref System.Web.UI.WebControls.Image imgPhoto, string folder, ClientScriptManager clientScriptManager) ...{ string PathFilename = string.Empty; if (fileUpload.HasFile) ...{ string Folder = folder; PathFilename = UploadPhotoFile(fileUpload, Folder, clientScriptManager); } else ...{ if (!clientScriptManager.IsStartupScriptRegistered("NoFile")) clientScriptManager.RegisterStartupScript(GetType(), "NoFile", "alert('请指定上传的文件!')", true); } imgPhoto.ImageUrl=PathFilename; return PathFilename; } /**//// <summary> /// 绑定上传图片并且保存为临时文件 /// </summary> /// <param name="fileUpload">上传图片的控件</param> /// <param name="imgPhoto">显示图片的Image控件的引用</param> /// <param name="clientScriptManager">当前页的客户端脚本管理器</param> /// <return>返回产生的临时文件的文件名(包括路径)</return> public string BindUploadPhotoToImage(FileUpload fileUpload, ref System.Web.UI.WebControls.Image imgPhoto, ClientScriptManager clientScriptManager) ...{ string Folder = @"../TempImg/"; string PathFilename = BindUploadPhotoToImage(fileUpload, ref imgPhoto, Folder ,clientScriptManager); return PathFilename; } /**//// <summary> /// 将文件上传到指定的临时文件夹并产生一个临时文件 /// </summary> /// <param name="fileUpload">上传控件的实例</param> /// <param name="folder">上传的文件夹</param> /// <param name="clientScriptManager">当前页的客户端脚本管理器</param> /// <returns>返回上传图片的临时文件名称(包括路径)</returns> public string UploadPhotoFile(FileUpload fileUpload, string folder, ClientScriptManager clientScriptManager) ...{ FileUpload FileUpload = fileUpload; string Filename = FileUpload.FileName; string Folder = folder; string strFileName = string.Empty; string strPath = string.Empty; if (ValidatePhotoFileType(Filename) == true) ...{ try ...{ strFileName = Guid.NewGuid().ToString(); strPath = HttpContext.Current.Server.MapPath(Folder); FileUpload.PostedFile.SaveAs(strPath + strFileName); } catch ...{ if (!clientScriptManager.IsStartupScriptRegistered("UploadFail")) clientScriptManager.RegisterStartupScript(this.GetType(), "UploadFail", "alert('文件上传失败!')", true); } } else ...{ if (!clientScriptManager.IsStartupScriptRegistered("TypeError")) clientScriptManager.RegisterStartupScript(this.GetType(), "TypeError", "alert('只允许上传gif,png,jpeg,jpg文件!')", true); } return strPath + strFileName; } /**//// <summary> /// 将文件上传到指定的临时文件夹并产生一个临时文件 /// </summary> /// <param name="fileUpload">上传控件的实例</param> /// <param name="folder">上传的文件夹</param> /// <param name="allowedExtentions">允许上传的类型</param> /// <param name="clientScriptManager">当前页的客户端脚本管理器</param> /// <returns>返回上传图片的临时文件名称(包括路径)</returns> public string UploadTypedFile(FileUpload fileUpload, string folder, string[] allowedExtentions, ClientScriptManager clientScriptManager) ...{ FileUpload FileUpload = fileUpload; string Filename = FileUpload.FileName; string Folder = folder; string[] AllowedExtentions = allowedExtentions; string strFileName = string.Empty; string strPath = string.Empty; if (ValidateFileType(Filename, AllowedExtentions) == true) ...{ try ...{ strFileName = Guid.NewGuid().ToString(); strPath = HttpContext.Current.Server.MapPath(Folder); FileUpload.PostedFile.SaveAs(strPath + strFileName); } catch ...{ if (!clientScriptManager.IsStartupScriptRegistered("UploadFail")) clientScriptManager.RegisterStartupScript(this.GetType(), "UploadFail", "alert('文件上传失败!')", true); } } else ...{ string FileTypes = string.Empty; int count = AllowedExtentions.Length; if (count == 0) ...{ if (!clientScriptManager.IsStartupScriptRegistered("TypeError")) clientScriptManager.RegisterStartupScript(this.GetType(), "TypeError", "alert('请指定上传的类型!')", true); } else ...{ for (int i = 0; i < count; i++) ...{ FileTypes = FileTypes + AllowedExtentions[i]; } if (!clientScriptManager.IsStartupScriptRegistered("TypeError")) clientScriptManager.RegisterStartupScript(this.GetType(), "TypeError", "alert('只允许上传'" + FileTypes + "'文件!')", true); } } return strPath + strFileName; } /**//// <summary> /// 判断上传的文件类型 /// </summary> /// <param name="filename">需要判断的文件名称</param> /// <param name="allowedExtentions">允许的文件后缀名</param> /// <returns>1表示正确, 0表示错误</returns> public bool ValidateFileType(string filename, string[] allowedExtentions) ...{ string Filename = filename; //---判断文件名是否正确--- bool isCorrect = false; String fileExtension = System.IO.Path.GetExtension(Filename).ToLower(); String[] AllowedExtensions = allowedExtentions; for (int i = 0; i < AllowedExtensions.Length; i++) ...{ if (fileExtension == AllowedExtensions[i]) ...{ isCorrect = true; } } return isCorrect; } /**//// <summary> /// 判断上传的是否图片类型的文件 /// </summary> /// <param name="filename">需要判断的文件名称</param> /// <returns>1表示正确, 0表示错误</returns> public bool ValidatePhotoFileType(string filename) ...{ string Filename = filename; String[] AllowedExtensions = ...{ ".gif", ".png", ".jpeg", ".jpg" }; bool isCorrect = ValidateFileType(Filename, AllowedExtensions); return isCorrect; } /**//// <summary> /// 删除已经存在的文件 /// </summary> /// <param name="filename">文件的文件名和绝对路径</param> /// <returns>1-删除成功, 0-删除失败</returns> public bool DeleteExistFile(string filename) ...{ bool isDelete = false; if (File.Exists(filename)) ...{ try ...{ File.Delete(filename); isDelete = true; } catch ...{ isDelete = false; } } else ...{ isDelete = false; } return isDelete; }}