0) { extension = f..."/>
您好,登錄后才能下訂單哦!
java判斷文件是否是圖片的方法:
1、通過(guò)判斷文件后綴名
String extension = ""; int i = fileName.lastIndexOf('.'); if (i > 0) { extension = fileName.substring(i+1); } //... if("jpg".equals(extension)){ //your code }
這種判斷是用得比較多的一種方式,不過(guò)這種方式非常的不妥,別人稍微的把一個(gè)不是圖片的文件的擴(kuò)展名修改為圖片的擴(kuò)展名,就繞開(kāi)了你的這種校驗(yàn),如果這上傳的文件是shell、PHP或者jsp,那你的網(wǎng)站基本上可以說(shuō)就在別人的手里面了。
2、判斷文件頭
在后綴未知,或者后綴被修改的文件,依然通過(guò)文件頭來(lái)判斷該文件究竟是什么文件類(lèi)型。我們可以使用一個(gè)文本編輯工具如UltraEdit打開(kāi)文件(16進(jìn)制模式下),然后看文件頭是什么字符,以下是常見(jiàn)圖片類(lèi)型的文件頭字符(16進(jìn)制)
JPEG (jpg),文件頭:FFD8FF PNG (png),文件頭:89504E47 GIF (gif),文件頭:47494638 TIFF (tif),文件頭:49492A00 Windows Bitmap (bmp),文件頭:424D
3、通過(guò)MimetypesFileTypeMap來(lái)判斷
public class ImageCheck { private MimetypesFileTypeMap mtftp; public ImageCheck(){ mtftp = new MimetypesFileTypeMap(); /* 不添加下面的類(lèi)型會(huì)造成誤判 詳見(jiàn):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、通過(guò)ImageIO來(lái)判斷( 該方法適用的圖片格式為 bmp/gif/jpg/png)
try { // 通過(guò)ImageReader來(lái)解碼這個(gè)file并返回一個(gè)BufferedImage對(duì)象 // 如果找不到合適的ImageReader則會(huì)返回null,我們可以認(rèn)為這不是圖片文件 // 或者在解析過(guò)程中報(bào)錯(cuò),也返回false Image image = ImageIO.read(file); return image != null; } catch(IOException ex) { return false; }
以上就是java怎么判斷文件是否是圖片的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。