/**
* 判断图片文件格式
*
* @param mapObj
* @return
* @throws IOException
*/
public static String getImageType(byte[] mapObj) throws IOException {
// FileOutputStream fout = new FileOutputStream("d:\\test.jpg");
// //将字节写入文件
// fout.write(mapObj);
// fout.close();
//支持的文件类型: ["gif", "jpeg", "jpg", "bmp", "png"],
if (Base64.decode(requestDTO.getCreditImg()).length > StringUtil.sizeImge) {
//大于1M
throw new RestException(ErrorDetailEnum.FILE_SIZE_ERROR, WatchLogType.MERCHANTS_IN_CENTER);//文件过大
}
String type = "";
ByteArrayInputStream bais = null;
MemoryCacheImageInputStream mcis = null;
try {
bais = new ByteArrayInputStream(mapObj);
mcis = new MemoryCacheImageInputStream(bais);
Iterator itr = ImageIO.getImageReaders(mcis);
while (itr.hasNext()) {
ImageReader reader = (ImageReader) itr.next();
String imageName = reader.getClass().getSimpleName();
if (imageName != null) {
if ("GIFImageReader".equals(imageName)) {
type = "gif";
} else if ("JPEGImageReader".equals(imageName)) {
type = "jpg";
} else if ("PNGImageReader".equals(imageName)) {
type = "png";
} else if ("BMPImageReader".equals(imageName)) {
type = "bmp";
} else {
type = "noPic";
}
}
}
} catch (Exception e) {
type = "noPic";
} finally {
if (bais != null) {
try {
bais.close();
} catch (IOException ioe) {
type = "noPic";
}
}
if (mcis != null) {
try {
mcis.close();
} catch (IOException ioe) {
type = "noPic";
}
}
}
return type;
}