文件后缀名限定

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
String edward = FileUploadUtils.getExtension(file).toLowerCase(); //限定文件类型 String[] args = {"png", "gif", "jpeg", "jpg"}; Arrays.sort(args); //包含的话是整数 不包含的话是负数 int result = Arrays.binarySearch(args, edward); //判断文件格式 if (result < 0) { throw new BadRequestException("上传的文件格式不支持,请重新选择!"); }

文件大小限定

  • 01
  • 02
  • 03
  • 04
//判断文件大小 不大于5M if(!FileUploadUtils.fileSize(file.getSize(),5,"M")){ throw new BadRequestException("出错了!请上传png、gif、JPEG等格式,大小不超过5M的图片!"); }

实现工具类

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
/** * 文件上传工具类 * * @author modianbai */ public class FileUploadUtils { /** * 默认大小 50M */ public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024; /** * 默认的文件名最大长度 100 */ public static final int DEFAULT_FILE_NAME_LENGTH = 100; /** * 获取文件名的后缀 * * @param file 表单文件 * @return 后缀名 */ public static final String getExtension(MultipartFile file) { String extension = FilenameUtils.getExtension(file.getOriginalFilename()); if (StringUtils.isEmpty(extension)) { extension = MimeTypeUtils.getExtension(file.getContentType()); } return extension; } /** * 判断文件大小 * @param len * 文件长度 * @param size * 限制大小 * @param unit * 限制单位(B,K,M,G) * @return */ public static boolean fileSize(Long len, int size, String unit){ double fileSize = 0; if ("B".equalsIgnoreCase(unit)) { fileSize = (double) len; } else if ("K".equalsIgnoreCase(unit)) { fileSize = (double) len / 1024; } else if ("M".equalsIgnoreCase(unit)) { fileSize = (double) len / 1048576; } else if ("G".equalsIgnoreCase(unit)) { fileSize = (double) len / 1073741824; } return !(fileSize > size); } }