异常抛出的地方:
MultipartFile file = multiRequest.getFile(iter.next());
BufferedImage sourceImg = ImageIO.read(file.getInputStream());
异常判断源码:
// Can we read this image? Iterator imageTypes = getImageTypes(imageIndex); if (imageTypes.hasNext() == false) { throw new IIOException("Unsupported Image Type"); }
今天中午,cms突然报出这个异常,很是奇怪。其他图片都可以,就一直不行,然后用Notepad++打开一看,咦!怎么不是jpg
开头如下:
??JFIF ??
我记得网上说直接打开就可以看到源文件的真实格式,这个JFIF怎么这个陌生。以为是这个问题,结果百度发现,这也是JPEG的一种。。。
翻阅了很多地方,发现很多人都在说ImageIO的这个问题。比如这位分析的很清楚 http://blog.csdn.net/WuZuoDingFeng/article/details/77946489
最后我采取的方案有:
1、讲图片使用画图打开,然后另存为jpg(亲测有效)
2、修改后台代码读取的方法,直接读取文件,不用ImageIO(这个暂时没有使用)
当然那些加jar包的方法我懒得搞。另存一下。。。