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