文件上传类

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>"); //弹出错误提示

        }

 

posted on 2012-07-11 09:45  lei0515  阅读(125)  评论(0)    收藏  举报

导航