Exemplo n.º 1
0
        /// <summary>
        /// 指定存储目录key,是否生成缩略图,上传文件
        /// 返回所有文件路径,如果是生成缩略图,则包含缩略图文件路径
        /// </summary>
        /// <param name="file"></param>
        /// <param name="key"></param>
        /// <param name="isCreateThumbnail"></param>
        /// <returns></returns>
        public string[] Upload(HttpPostedFile file, string key, bool isCreateThumbnail)
        {
            if (file == null || file.ContentLength == 0)
            {
                throw new ArgumentException("没有获取到任何上传的文件", "file");
            }
            int    size          = file.ContentLength;
            string fileExtension = Path.GetExtension(file.FileName).ToLower();

            if (!IsFileValidated(file.InputStream, size))
            {
                throw new ArgumentException("上传文件不在规定的上传文件范围内");
            }
            if (isCreateThumbnail)
            {
                if ((fileExtension != ".jpg") || (fileExtension != ".jpg"))
                {
                    throw new ArgumentException("创建缩略图只支持.jpg格式的文件,请检查");
                }
            }
            string dir = ConfigHelper.GetValueByKey(key);

            if (string.IsNullOrWhiteSpace(dir))
            {
                throw new ArgumentException("未找到" + key + "的相关配置,请检查", "key");
            }

            string paths = "";

            dir = VirtualPathUtility.AppendTrailingSlash(dir);
            string rndName  = FilesHelper.GetFormatDateTime();
            string fName    = rndName + fileExtension;
            string filePath = dir + rndName.Substring(0, 8) + "/";
            string fullPath = HttpContext.Current.Server.MapPath(filePath);

            if (!Directory.Exists(fullPath))
            {
                Directory.CreateDirectory(fullPath);
            }
            file.SaveAs(fullPath + fName);

            paths += filePath + fName;
            if (isCreateThumbnail)
            {
                ImagesHelper ih           = new ImagesHelper();
                string[]     whBPicture   = ConfigHelper.GetValueByKey("BPicture").Split(',');
                string[]     whMPicture   = ConfigHelper.GetValueByKey("MPicture").Split(',');
                string[]     whSPicture   = ConfigHelper.GetValueByKey("SPicture").Split(',');
                string       bPicturePath = filePath + rndName + "_b" + fileExtension;
                string       mPicturePath = filePath + rndName + "_m" + fileExtension;
                string       sPicturePath = filePath + rndName + "_s" + fileExtension;
                ih.CreateThumbnailImage(fullPath + fName, HttpContext.Current.Server.MapPath(bPicturePath), int.Parse(whBPicture[0]), int.Parse(whBPicture[1]));
                ih.CreateThumbnailImage(fullPath + fName, HttpContext.Current.Server.MapPath(mPicturePath), int.Parse(whMPicture[0]), int.Parse(whMPicture[1]));
                ih.CreateThumbnailImage(fullPath + fName, HttpContext.Current.Server.MapPath(sPicturePath), int.Parse(whSPicture[0]), int.Parse(whSPicture[1]));
                paths += "," + bPicturePath;
                paths += "," + mPicturePath;
                paths += "," + sPicturePath;
            }
            else
            {
                paths += "," + filePath + fName;
                paths += "," + filePath + fName;
                paths += "," + filePath + fName;
            }

            return(paths.Split(','));
        }