话不多说上源码
public String getPicType(String srcPath) {
//读取文件的前几个字节 文件头 来判断图片格式
byte[] b = new byte[4];
StringBuilder sb = new StringBuilder();
FileInputStream fis = null;
try {
fis = new FileInputStream(srcPath);
fis.read(b, 0, b.length);
} catch (IOException e) {
e.printStackTrace();
}
for (int i = 0; i < b.length; i++) {
sb.append(String.format("%02x", b[i]));
}
try {
String type = sb.toString().toUpperCase();
if (type.contains("FFD8FF")) {
return "jpg";
} else if (type.contains("89504E47")) {
return "png";
} else if (type.contains("47494638")) {
return "gif";
} else if (type.contains("424D")) {
return "bmp";
} else if (type.contains("52494646")) {
return "webp";
} else if (type.contains("49492A00")) {
return "tif";
} else {
return null;
}
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}