Java根据文件内容判断是否是图片。

Java根据文件内容判断是否是图片。,第1张

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

通过文件的二进制流来判断一张图片是否为jpg格式的图片。

原理很简单:所有JPG/JPEG格式的图片都是以十六进制的'FF D8'作为文件开始,'FF

D9'作为文件结束标志。碧悔FF等为16进制数据,占文件的1 byte。如果没有带相机信息的jpg图片,第7, 8, 9,

10这4位上分别是字符'JFIF'的16进制表示悔帆正,用UltraEdit打开可以直接看到;如轿斗果带有相机信息,有可能与不带信息的不同,也可能相同,不

同的话在那4位上为'Exif'字符的16进制表示,但是他们都是以FF D8开始,FF D9结束。

下面是我做网站用过的,当时我们是判断用户上传的头像图片是否在tomcat服务器upload文件夹下存在:

String path1 = getServletContext().getRealPath("/")// 获取服务器地址

File f = new File(path1+"upload/"+u_id+".jpg")//此处你改为你要判断的地洞基址,我们的是获取服务器地址/upload/id名.jpg

if(!f.exists()){//如果该图片文件不存在

src1="./镇颤历upload/zg.jpg"//则用默认头像

}

else{ src1="御搜./upload/"+u_id+".jpg"}

//如果存在,则用该用户上传的头像图片

//下面就是显示出这个图片啦

%>

<p class="STYLE2">基础资料</p>

<hr align="left" width="400">

<p><span class="STYLE1">头像:</span><img src="<%=src1%>" width="40"height="50"><a href="webs/user/up_photo.jsp">修改头像</a></p>

如果还不够详细请Q我,360307836


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12144016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存