asp.net上传文件

public class upFiles
{
    private string path = null;//文件的路径
    private string fileType = null;//文件上传类型
    private int sizes = 0;//大小
    /// <summary>
    /// 初始化变量
    /// </summary>
    public upFiles()
    {
        path = @"Admin\uploadfile\"; //上传路径 @表示转义\没有错误
        fileType = "jpg|gif|bmp|png|rar|zip";//上传文件规定的类型
        sizes = 200; //传文件的大小,默认200KB
    }

    /// <summary>
    /// 设置上传路径,如:uploadfile\
    /// </summary>
    public string Path
    {
        set
        {
            path = @"\" + value + @"\";
        }
    }

    /// <summary>
    /// 设置上传文件大小,单位为KB
    /// </summary>
    public int Sizes
    {
        set
        {
            sizes = value;
        }
        get
        {
            return sizes;
        }
    }

    /// <summary>
    /// 设置上传文件的类型,如:jpg|gif|bmp
    /// </summary>
    public string FileType
    {
        set
        {
            fileType = value;
        }
    }

    /// <summary>
    /// 上传图片
    /// </summary>
    /// <param name="name">上传控件名称</param>
    /// <param name="creatDirectory">true则以当前时间创建文件夹,false则为设置的文件夹</param>
    /// <returns>返回上传图片的相对路径</returns>
    public string fileSaveAs(System.Web.UI.WebControls.FileUpload name, bool creatDirectory)
    {

        try
        {
            string filePath = null;
            //以当前时间修改图片的名字或创建文件夹的名字
            string modifyFileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
            //获得站点的物理路径
            string uploadFilePath = null;
            //如果为true则以当前时间创建文件夹,否则为设置的文件夹
            if (creatDirectory)
            {
                uploadFilePath = System.Web.HttpContext.Current.Server.MapPath(".") + @"\" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + @"\";
            }
            else
            {
                //uploadFilePath = System.Web.HttpContext.Current.Server.MapPath(".") + path;
                uploadFilePath = System.Web.HttpContext.Current.Server.MapPath("../uploadfile/");
            }
            //获得文件的上传的路径
            string sourcePath = name.FileName.Trim();
            //判断上传文件是否为空
            if (sourcePath == "" || sourcePath == null)
            {
                message("您没有上传数据呀,是不是搞错了呀!");
                return null;
            }
            //获得文件扩展名
            string tFileType = sourcePath.Substring(sourcePath.LastIndexOf(".") + 1);
            //获得上传文件的大小
            long strLen = name.FileContent.Length;;//.ContentLength;
            //分解允许上传文件的格式
            string[] temp = fileType.Split('|');
            //设置上传的文件是否是允许的格式
            bool flag = false;
            //判断上传文件大小
            if (strLen / 1024 >= sizes)
            {

                message("上传的图片不能大于" + sizes + "KB");
                return null;
            }
            //判断上传的文件是否是允许的格式
            foreach (string data in temp)
            {
                if (data == tFileType)
                {
                    flag = true;
                    break;
                }
            }
            //如果为真允许上传,为假则不允许上传
            if (!flag)
            {
                message("目前本系统支持的格式为:" + fileType);
                return null;
            }
            System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(uploadFilePath);
            //判断文件夹否存在,不存在则创建
            if (!dir.Exists)
            {
                message("程序设置的文件存放目录不存在!");
                return null;
                //下面这一句可以创建一个文件夹,但为了安全,设置为不创建文件夹
                //dir.Create();
            }
            filePath = uploadFilePath + modifyFileName + "." + tFileType;
            name.SaveAs(filePath);
            filePath = path + modifyFileName + "." + tFileType;
            //上传前使用:\目录\文件名 上传后,在网站上使用:/目录/文件名
            filePath = filePath.Replace('\\', '/');
            return filePath;

        }
        catch
        {
            //异常
            message("出现未知错误!");
            return null;
        }
    }

    public static void message(string msg, string url)
    {
        System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');window.location='" + url + "'</script>");
    }

    public static void message(string msg)
    {
        System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('" + msg + "');</script>");
    }
}

原文地址:https://www.cnblogs.com/yzenet/p/2310192.html