/// <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(',')); }