java判断 图片_java判断文件是否是图片的方法

java判断文件是否是图片的方法

发布时间:2020-06-10 18:32:53

来源:亿速云

阅读:278

作者:鸽子

java判断文件是否是图片的方法:

1、通过判断文件后缀名String extension = "";

int i = fileName.lastIndexOf('.');

if (i > 0) {

extension = fileName.substring(i+1);

}

//...

if("jpg".equals(extension)){

//your code

}

这种判断是用得比较多的一种方式,不过这种方式非常的不妥,别人稍微的把一个不是图片的文件的扩展名修改为图片的扩展名,就绕开了你的这种校验,如果这上传的文件是shell、PHP或者jsp,那你的网站基本上可以说就在别人的手里面了。

2、判断文件头

在后缀未知,或者后缀被修改的文件,依然通过文件头来判断该文件究竟是什么文件类型。我们可以使用一个文本编辑工具如UltraEdit打开文件(16进制模式下),然后看文件头是什么字符,以下是常见图片类型的文件头字符(16进制)JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

TIFF (tif),文件头:49492A00

Windows Bitmap (bmp),文件头:424D

3、通过MimetypesFileTypeMap来判断public class ImageCheck {

private MimetypesFileTypeMap mtftp;

public ImageCheck(){

mtftp = new MimetypesFileTypeMap();

/* 不添加下面的类型会造成误判 详见:http://stackoverflow.com/questions/4855627/java-mimetypesfiletypemap-always-returning-application-octet-stream-on-android-e*/

mtftp.addMimeTypes("image png tif jpg jpeg bmp");

}

public boolean isImage(File file){

String mimetype= mtftp.getContentType(file);

String type = mimetype.split("/")[0];

return type.equals("image");

}

}

4、通过ImageIO来判断( 该方法适用的图片格式为 bmp/gif/jpg/png)try {

// 通过ImageReader来解码这个file并返回一个BufferedImage对象

// 如果找不到合适的ImageReader则会返回null,我们可以认为这不是图片文件

// 或者在解析过程中报错,也返回false

Image image = ImageIO.read(file);

return image != null;

} catch(IOException ex) {

return false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值