[#1651] added more detailed file upload errors
This commit is contained in:
parent
8564a69a94
commit
2d40487b21
|
@ -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, ", "),
|
||||||
|
),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue