在Web程序中,如果限制上传文件为图片,大部分方法都采取检查文件扩展名。这样,当把一个非图片文件的扩展名改为jpg、gif或者bmp时,就能绕过限制。所以必须得通过读取文件内容来进行判断。这里提供两种实现代码。
ImageInputStream iis = ImageIO.createImageInputStream(new File("E:/photo/4.jpg"));
Iterator iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {//文件不是图片
System.out.println("此文件不为图片文件");
}
BufferedImage bi = ImageIO.read(new File("E:/photo/4.jpg"));
if(bi == null){
System.out.println("此文件不为图片文件");
}