[#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 { | ||||
| 			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 | ||||
|  | @ -42,19 +45,24 @@ func UploadedFileMimeType(validTypes []string) validation.RuleFunc { | |||
| 			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 { | ||||
| 			return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") | ||||
| 			return baseErr | ||||
| 		} | ||||
| 
 | ||||
| 		f, err := v.Reader.Open() | ||||
| 		if err != nil { | ||||
| 			return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") | ||||
| 			return baseErr | ||||
| 		} | ||||
| 		defer f.Close() | ||||
| 
 | ||||
| 		filetype, err := mimetype.DetectReader(f) | ||||
| 		if err != nil { | ||||
| 			return validation.NewError("validation_invalid_mime_type", "Unsupported file type.") | ||||
| 			return baseErr | ||||
| 		} | ||||
| 
 | ||||
| 		for _, t := range validTypes { | ||||
|  | @ -63,9 +71,13 @@ func UploadedFileMimeType(validTypes []string) validation.RuleFunc { | |||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		return validation.NewError("validation_invalid_mime_type", fmt.Sprintf( | ||||
| 			"The following mime types are only allowed: %s.", | ||||
| 			strings.Join(validTypes, ","), | ||||
| 		)) | ||||
| 		return validation.NewError( | ||||
| 			"validation_invalid_mime_type", | ||||
| 			fmt.Sprintf( | ||||
| 				"%q mime type must be one of: %s.", | ||||
| 				v.Name, | ||||
| 				strings.Join(validTypes, ", "), | ||||
| 			), | ||||
| 		) | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue