Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 获取缩略图
 /// </summary>
 /// <param name="condtion"></param>
 /// <returns></returns>
 public string GetImgFileThumbnailPath(GetImgFileThumbnailRequest condtion)
 {
     return(GetImgFileThumbnailPath(this.Path, condtion));
 }