文件上传类
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>"); //弹出错误提示
}
浙公网安备 33010602011771号