日期:2014-05-16  浏览次数:20807 次

ASP.NET 上传文件

今天闲来无事,就把以前写的上传文件的方法封装了一下,封装后感觉很好用,如果有什么错误还请大家给出指导,下面是代码

首先新建一个类tool

下面是具体封装的方法:

/// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="fileUploadControl">上传文件的控件</param>
        /// <param name="path">上传的服务器相对路径径 如“~\\Resource\\Images”</param>
        /// <param name="arrayType">上传文件的文件格式</param>
        /// <param name="errorMessage">返回错误信息</param>
        /// <param name="filePath">返回绝对路径</param>
        /// <returns>返回值</returns>
        public static bool UploadFile(FileUpload fileUploadControl, string path, string[] arrayType, out string errorMessage, out string filePath)
        {
            if (fileUploadControl.HasFile)
            {
                string fullFileName = fileUploadControl.PostedFile.FileName;
                string fileName = fullFileName.Substring(fullFileName.LastIndexOf("\\") + 1);
                string fileType = fileName.Substring(fileName.LastIndexOf('.') + 1);
                if (arrayType.Contains(fileType.ToLower()))
                {
                    string basePath = HttpContext.Current.Server.MapPath(path);
                    string subPath = basePath + "\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + fileName; //
这里是给上传文件取个时间+文件名的名字
                    if (!File.Exists(subPath))
                    {
                        if (!Directory.Exists(basePath))
                            Directory.CreateDirectory(basePath);
                        filePath = subPath;
                        errorMessage = string.Empty;
                        return true;
                    }
                    else
                    {
                        errorMessage = "您上传的文件已存在,请重命名后再上传!";