/// <summary>
 /// Kiểm tra kích thước của file ảnh được upload có vượt
 /// quá khổ quy định bởi 2 thuộc tính Width và Height?
 /// </summary>
 /// <param name="upload">Tâp tin ảnh được upload</param>
 /// <returns>Trả về false nếu kích thước ảnh quá lớn</returns>
 private bool CheckImageSize(HttpPostedFileBase upload)
 {
     // Nếu không thể đọc được nội dung thì gán không hợp lệ
     if (!upload.InputStream.CanRead)
     {
         _ivResult = ImageValidationResult.InvalidHeader;
         return(false);
     }
     try
     {
         // Tạo hình ảnh từ luồng upload
         using (var image = Image.FromStream(upload.InputStream))
         {
             // Kiểm tra kích cỡ ảnh có vượt quá cỡ cho phép
             // Nếu có, trả về false.
             if (image.Width > Width || image.Height > Height)
             {
                 _ivResult = ImageValidationResult.OverSize;
                 return(false);
             }
         }
         return(true);
     }
     catch (Exception)
     {
         _ivResult = ImageValidationResult.InvalidHeader;
         return(false);
     }
 }
        /// <summary>
        /// Kiểm tra kiểu nội dung của tập tin được upload
        /// có phải là kiểu nội dung hình ảnh
        /// </summary>
        /// <param name="upload">Tập tin được load</param>
        /// <returns>
        /// Trả về false nếu không đúng định dạng nội dung
        /// của các loại tập tin hình ảnh. True nếu ngược lại.
        /// </returns>
        private bool CheckMimeTypes(HttpPostedFileBase upload)
        {
            // Lấy kiểu nội dung cho tập tin được upload
            var contentType = upload.ContentType.ToLower();

            // Nếu kiểu nội dung không thuộc kiểu hình ảnh
            if (!mimeTypes.Contains(contentType))
            {
                // Thì đánh dấu MIME Type không hợp lệ
                _ivResult = ImageValidationResult.InvalidMimeType;
                return(false);
            }
            return(true);
        }
        /// <summary>
        /// Kiểm tra phần tên mở rộng của tập tin có nằm trong
        /// danh sách những loại hình ảnh được phép upload?
        /// </summary>
        /// <param name="upload">Tập tin được upload</param>
        /// <returns>
        /// Trả về false nếu tên mở rộng không nằm trong danh sách
        /// các định dạng được phép upload. True nếu ngược lại.
        /// </returns>
        private bool CheckFileExtension(HttpPostedFileBase upload)
        {
            // Lấy phần mở rộng của tập tin
            var fileExt = Path.GetExtension(upload.FileName);

            // Nếu có phần tên mở rộng
            if (!string.IsNullOrWhiteSpace(fileExt))
            {
                // Trả về true nếu phần mở rộng nằm trong danh sách cho phép
                if (imageExts.Contains(fileExt, StringComparer.OrdinalIgnoreCase))
                {
                    return(true);
                }
            }

            // Đánh dấu định dạng file không hợp lệ
            _ivResult = ImageValidationResult.NotAllowedType;

            return(false);
        }
Example #4
0
        public Task <ImageValidationResult> ValidateImageAsync(string imageUrl, bool isLogo)
        {
            if (string.IsNullOrWhiteSpace(imageUrl))
            {
                return(Task.FromResult(ImageValidationResult.CreateUnknown()));
            }

            var maxWidth  = isLogo ? LOGO_MAX_WIDTH : SCREENSHOT_MAX_WIDTH;
            var maxHeight = isLogo ? LOGO_MAX_HEIGHT : SCREENSHOT_MAX_HEIGHT;

            using (var img = ImageHelper.FromStream(StreamHelper.FromUrl(imageUrl)))
            {
                return(Task.FromResult(new ImageValidationResult
                {
                    TypeStatus = img.IsPng() ? ValidationResult.Pass : ValidationResult.Fail,
                    DimensionStatus = (img.Width <= maxWidth && img.Height <= maxHeight)
                                    ? ValidationResult.Pass
                                    : ValidationResult.Fail
                }));
            }
        }
        /// <summary>
        /// Kiểm tra kiểu nội dung của tập tin được upload
        /// có phải là kiểu nội dung hình ảnh
        /// </summary>
        /// <param name="upload">Tập tin được load</param>
        /// <returns>
        /// Trả về false nếu không đúng định dạng nội dung
        /// của các loại tập tin hình ảnh. True nếu ngược lại.
        /// </returns>
        private bool CheckMimeTypes(HttpPostedFileBase upload)
        {
            // Lấy kiểu nội dung cho tập tin được upload
            var contentType = upload.ContentType.ToLower();

            // Nếu kiểu nội dung không thuộc kiểu hình ảnh
            if (!mimeTypes.Contains(contentType))
            {
                // Thì đánh dấu MIME Type không hợp lệ
                _ivResult = ImageValidationResult.InvalidMimeType;
                return false;
            }
            return true;
        }
 /// <summary>
 /// Kiểm tra kích thước của file ảnh được upload có vượt
 /// quá khổ quy định bởi 2 thuộc tính Width và Height?
 /// </summary>
 /// <param name="upload">Tâp tin ảnh được upload</param>
 /// <returns>Trả về false nếu kích thước ảnh quá lớn</returns>
 private bool CheckImageSize(HttpPostedFileBase upload)
 {
     // Nếu không thể đọc được nội dung thì gán không hợp lệ
     if (!upload.InputStream.CanRead)
     {
         _ivResult = ImageValidationResult.InvalidHeader;
         return false;
     }
     try
     {
         // Tạo hình ảnh từ luồng upload
         using (var image = Image.FromStream(upload.InputStream))
         {
             // Kiểm tra kích cỡ ảnh có vượt quá cỡ cho phép
             // Nếu có, trả về false.
             if (image.Width > Width || image.Height > Height)
             {
                 _ivResult = ImageValidationResult.OverSize;
                 return false;
             }
         }
         return true;
     }
     catch (Exception)
     {
         _ivResult = ImageValidationResult.InvalidHeader;
         return false;
     }
 }
        /// <summary>
        /// Kiểm tra phần tên mở rộng của tập tin có nằm trong
        /// danh sách những loại hình ảnh được phép upload?
        /// </summary>
        /// <param name="upload">Tập tin được upload</param>
        /// <returns>
        /// Trả về false nếu tên mở rộng không nằm trong danh sách
        /// các định dạng được phép upload. True nếu ngược lại.
        /// </returns>
        private bool CheckFileExtension(HttpPostedFileBase upload)
        {
            // Lấy phần mở rộng của tập tin
            var fileExt = Path.GetExtension(upload.FileName);

            // Nếu có phần tên mở rộng
            if (!string.IsNullOrWhiteSpace(fileExt))
            {
                // Trả về true nếu phần mở rộng nằm trong danh sách cho phép
                if (imageExts.Contains(fileExt, StringComparer.OrdinalIgnoreCase))
                    return true;
            }

            // Đánh dấu định dạng file không hợp lệ
            _ivResult = ImageValidationResult.NotAllowedType;

            return false;
        }