/// <summary> /// 获取缩略图 /// </summary> /// <param name="path">目标文件的存放路径</param> /// <param name="condtion"></param> /// <returns></returns> public static string GetImgFileThumbnailPath(string path, GetImgFileThumbnailRequest condtion) { ValiDatas.valiData(condtion); int width = condtion.Width; int height = condtion.Height; string imgUrl = path; string fileName = HttpContext.Current.Server.MapPath(imgUrl); if (!File.Exists(fileName)) { throw new DataNotFundException("指定的文件不存在"); } string fileExt = System.IO.Path.GetExtension(fileName).ToLower(); string[] imgTypes = { ".gif", ".jpg", ".jpeg", ".png", ".bmp" }; if (!imgTypes.Contains(fileExt)) { throw new ValiDataException("只有图片文件才能生成缩略图"); } if (imgUrl.IndexOf("thumbnail", StringComparison.OrdinalIgnoreCase) != -1) { throw new ValiDataException("传入的文件已经是缩略图地址了,不能再生成缩略图"); } string imgDir = string.Format("{0}/thumbnail/{1}_{2}", imgUrl.Substring(0, imgUrl.LastIndexOf('.')), width, height); string imgFile = string.Format("{0}/{1}", imgDir, imgUrl.Substring(imgUrl.LastIndexOf("/", StringComparison.OrdinalIgnoreCase))); //判断目录是否存在 if (!Directory.Exists(HttpContext.Current.Server.MapPath(imgDir))) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath(imgDir)); } //创建缩略图 if (!File.Exists(HttpContext.Current.Server.MapPath(imgFile))) { MakeThumbnail(fileName, HttpContext.Current.Server.MapPath(imgFile), width, height); } return(imgFile); }
/// <summary> /// 获取缩略图 /// </summary> /// <param name="condtion"></param> /// <returns></returns> public string GetImgFileThumbnailPath(GetImgFileThumbnailRequest condtion) { return(GetImgFileThumbnailPath(this.Path, condtion)); }