[#1651] added more detailed file upload errors

This commit is contained in:
Gani Georgiev 2023-01-24 12:40:49 +02:00
parent 8564a69a94
commit 2d40487b21
1 changed files with 20 additions and 8 deletions

View File

@ -22,7 +22,10 @@ func UploadedFileSize(maxBytes int) validation.RuleFunc {
} }
if int(v.Size) > maxBytes { if int(v.Size) > maxBytes {
return validation.NewError("validation_file_size_limit", fmt.Sprintf("Maximum allowed file size is %v bytes.", maxBytes)) return validation.NewError(
"validation_file_size_limit",
fmt.Sprintf("Failed to upload %q - the maximum allowed file size is %v bytes.", v.OriginalName, maxBytes),
)
} }
return nil return nil
@ -42,19 +45,24 @@ func UploadedFileMimeType(validTypes []string) validation.RuleFunc {
return nil // nothing to validate return nil // nothing to validate
} }
baseErr := validation.NewError(
"validation_invalid_mime_type",
fmt.Sprintf("Failed to upload %q due to unsupported file type.", v.OriginalName),
)
if len(validTypes) == 0 { if len(validTypes) == 0 {
return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") return baseErr
} }
f, err := v.Reader.Open() f, err := v.Reader.Open()
if err != nil { if err != nil {
return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") return baseErr
} }
defer f.Close() defer f.Close()
filetype, err := mimetype.DetectReader(f) filetype, err := mimetype.DetectReader(f)
if err != nil { if err != nil {
return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") return baseErr
} }
for _, t := range validTypes { for _, t := range validTypes {
@ -63,9 +71,13 @@ func UploadedFileMimeType(validTypes []string) validation.RuleFunc {
} }
} }
return validation.NewError("validation_invalid_mime_type", fmt.Sprintf( return validation.NewError(
"The following mime types are only allowed: %s.", "validation_invalid_mime_type",
strings.Join(validTypes, ","), fmt.Sprintf(
)) "%q mime type must be one of: %s.",
v.Name,
strings.Join(validTypes, ", "),
),
)
} }
} }