java 验证图片格式gif,jpeg,png,bmp

再一次开发中遇到验证图片的问题,想了很久,写了点代码问题解决啦:

比如说我在上传文件的时候验证图片格式,即便你把图片的后缀名改了也没问题,

其实验证图片还有很多方法,但是我测试之后不是很好用,推荐!!!


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));
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值