再一次开发中遇到验证图片的问题,想了很久,写了点代码问题解决啦:
比如说我在上传文件的时候验证图片格式,即便你把图片的后缀名改了也没问题,
其实验证图片还有很多方法,但是我测试之后不是很好用,推荐!!!
比如说我在上传文件的时候验证图片格式,即便你把图片的后缀名改了也没问题,
其实验证图片还有很多方法,但是我测试之后不是很好用,推荐!!!
import java.io.ByteArrayInputStream;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.MemoryCacheImageStream;
public class ImageHelper
{
public static boolean validateImageType(byte[] mapObj)
{
boolean ret =false;
ByteArrayInputStream bais = null;
MemoryCacheImageInputStream mcis = null;
try
{
bais = new ByteArrayInputStream(mapObj);
mcis = new MemoryCacheImageInputStream(bais);
Iteratoe<ImagerReader> itr = ImageIO.getImagerReaders(mcis);
while(itr.hasNext())
{
ImageReader reader = (ImagerReader)itr.next();
String imageName = reader.getClass().getSimpleName();
if(imageName!=null &&("GIFImageReader".equals(imageName)
||"JPEGImageReader".equals(imageName)
||"PNGImageReader".equals(imageName)
||"BMPImageReader".equals(imageName)))
{
ret =true;
}
}
}
finally
{
//关闭流
}
}
public static boolean validateImageType(InputStream input)
{
return validateImageType(IOUtils.toByteArray(input));
}
}