Java判断上传文件是否为图片格式

原创     发表于 2020-10-28 20:34     阅读 78  

很多博客都有写关于Java判断上传文件是否为图片的问题,搜索出来的绝大多数都是复制式的,千篇一律的都是根据后缀名来判断,这种方式是有很多缺陷的,如果我将一个文本文件的后缀名改为".png"呢?严格来说,这样的文件我们的程序也应该能够识别出来,这样的文件不是图片!

OK,直接贴代码:

// 代码中的file对象,为 MultipartFile file
List<String> imgsType = new ArrayList<>(Arrays.asList("image/jpg", "image/jpeg", "image/png"));
if (!imgsType.contains(file.getContentType().toLowerCase())) {
throw new HandleException("请传入JPG、JPEG、PNG 等格式的图片");
}

if (file.getSize() <= 0L) {
throw new HandleException("获取图片错误");
}
/**
* 限制在1M以内
*/
if (file.getSize() > (1024 * 1024)) {
throw new HandleException("图片过大,限制在1M以内");
}


这样的方式,显然比判断后缀名更为精准!