public class UpLoad { private string filepath = string.Empty; //文件相对路径,如果要进行预览,则应加上"~/" private string fileurl = "~/"; private string errmsg = ""; //上传成功的消息 private string okmsg = ""; //上传失败的消息 //private int maxsize; //最大上传文件大小 private string[] allowedExtensions = { ".jpg", ".gif", ".jpeg", ".png" }; //允许上传的文件类型 public UpLoad() { } /// <summary> /// 上传后的文件相对路径 /// </summary> public string FilePath { get{ return filepath;} set{ filepath = value;} } /// <summary> /// 上传后的文件URL /// </summary> public string FileURL { get{ return fileurl + filepath;} set{ fileurl = value;} } /// <summary> /// 上传错误时的消息 /// </summary> public string ErrMsg { get { return errmsg; } set { errmsg = value; } } /// <summary> /// 上传成功时的消息 /// </summary> public string OkMsg { get { return okmsg; } set { okmsg = value; } } /// <summary> /// 文件上传 /// </summary> /// <returns>文件上传到服务器的相对路径</returns> public bool UpFile(FileUpload FU) { //检查是否有文件 if (FU.HasFile) { Boolean fileOK = false; //检查文件是否符合要求 string path = ConfigurationSettings.AppSettings["ImagesPath"].ToString(); //保存文件的目标位置的相对路径,按实际情况修改即可 //取得文件的扩展名 string fileExtension = System.IO.Path.GetExtension(FU.PostedFile.FileName).ToLower(); //新的基于时间的随机文件名 Random rnd = new Random(); string newName = DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "") + rnd.Next(1000).ToString(); for (int i = 0; i < allowedExtensions.Length; i++) { if (fileExtension == allowedExtensions[i]) { fileOK = true; } } //如果文件符合要求 if (fileOK) { try { string toPath = System.Web.HttpContext.Current.Server.MapPath("~/" + path) + newName + fileExtension;//最终完全路径,保存文件的目标位置 FU.PostedFile.SaveAs(toPath);//保存文件 this.OkMsg = "文件上传成功!"; this.FilePath ="/" + path + newName + fileExtension;//返回文件相对路径 return true; } catch (Exception ex) { this.ErrMsg = "上传文件失败!<br>" + ex.ToString(); return false; } } else//如果文件类型错误 { this.ErrMsg = "文件类型错误!"; return false; } } else//如果没有选择文件 { this.ErrMsg = "请选择要上传的文件!"; return false; } } }