先给大家介绍下java判断上传图片格式。
由于客户上传图片将png的图片的后缀名改为jpg,所以通过后缀名判断不行,用下面这个方法可以
//判断是否是JPG格式 log.info("-1----进入JPG格式判断....."); ImageInputStream iis = ImageIO.createImageInputStream(file.getInputStream()); Iteratoriter = ImageIO.getImageReaders(iis); if (!iter.hasNext()) { throw new RuntimeException("No readers found!"); } ImageReader reader = iter.next(); log.info("Format1: " + reader.getFormatName()); //这里会打印出图片的格式 if(!"JPEG".equals(reader.getFormatName())){ return new ResponseBean(ResponseBean.FAIL, "不支持修改后缀名为jpg的图片"); } iis.close();
PS:Java使用文件头的类型判断上传的文件是否为图片类型
web判断文件的格式的时候,我们一般都是通过扩展名来判断,这个有点不太靠谱和安全,例如,修改文件名的后缀即可绕过判断。一般要判断是利用头文件来判断。下面是利用头文件来判断的代码:
package com.metro.crm.util; import java.io.FileInputStream; public class FileType{ public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length <= 0) { return null; } for (int i = 0; i
总结
以上所述是小编给大家介绍的Java判断上传图片格式的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!