文件上传类
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; /// <summary> /// CetFileUpload 的摘要说明 /// </summary> public class CetFileUpload { private string filepath = string.Empty;//文件相对路径,如果要进行预览,则应加上"~/" private string fileurl = "~/"; private string errmsg = "";//上传成功的消息 private string okmsg = "";//上传失败的消息 //private int maxsize;//最大上传文件大小 private string[] allowedExtensions ={ ".jpg", ".gif", ".jpeg", ".rar" };//允许上传的文件类型 public CetFileUpload() { } /// <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 = "FileUpload/";//保存文件的目标位置的相对路径,按实际情况修改即可 //取得文件的扩展名 string fileExtension = System.IO.Path.GetExtension(FU.PostedFile.FileName).ToLower(); //新的基于时间的随机文件名 Random rnd = new Random(); string newName = DateTime.Now.ToString("yyyyMMHHmmssfff"); //DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "") + rnd.Next(1000).ToString(); //String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg",".rar" };//允许上传的文件类型 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; //CetBase.msg("上传失败!"); } } else//如果文件类型错误 { this.ErrMsg = "文件类型错误!"; return false; } } else//如果没有选择文件 { this.ErrMsg = "请选择要上传的文件!"; return false; } } }
类名:CetFileUpload.cs
在aspx页面上,增添FileUpload和Botton,及Img控件
Botton事件
CetFileUpload cetFU = new CetFileUpload(); if (cetFU.UpFile(file))//如果上传成功 { // System.Web.HttpContext.Current.Response.Write("<script language='javascript'>上传成功</script>"); //tb_Pic.Text = cetFU.FilePath;//这里上传后得到的路径 this.PreImg.ImageUrl = cetFU.FileURL;//这是图片预览 } else//如果上传失败 { Response.Write(cetFU.ErrMsg); // System.Web.HttpContext.Current.Response.Write("<script language='javascript'>" + cetFU.ErrMsg + "</script>"); //弹出错误提示 }