成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java判斷文件是否是圖片的方法

java判斷文件是否是圖片的方法:

創(chuàng)新互聯(lián)公司-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、川西大數(shù)據(jù)中心、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),咨詢電話:18980820575

1、通過判斷文件后綴名

String extension = "";
int i = fileName.lastIndexOf('.');
if (i > 0) {
    extension = fileName.substring(i+1);
}
//...
if("jpg".equals(extension)){
    //your code
}

這種判斷是用得比較多的一種方式,不過這種方式非常的不妥,別人稍微的把一個(gè)不是圖片的文件的擴(kuò)展名修改為圖片的擴(kuò)展名,就繞開了你的這種校驗(yàn),如果這上傳的文件是shell、PHP或者jsp,那你的網(wǎng)站基本上可以說就在別人的手里面了。

2、判斷文件頭

在后綴未知,或者后綴被修改的文件,依然通過文件頭來判斷該文件究竟是什么文件類型。我們可以使用一個(gè)文本編輯工具如UltraEdit打開文件(16進(jìn)制模式下),然后看文件頭是什么字符,以下是常見圖片類型的文件頭字符(16進(jìn)制)

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();
        /* 不添加下面的類型會(huì)造成誤判 詳見: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來解碼這個(gè)file并返回一個(gè)BufferedImage對(duì)象
    // 如果找不到合適的ImageReader則會(huì)返回null,我們可以認(rèn)為這不是圖片文件
    // 或者在解析過程中報(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)注創(chuàng)新互聯(lián)其它相關(guān)文章!

本文名稱:java判斷文件是否是圖片的方法
文章出自:http://jinyejixie.com/article8/ppsgip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)App設(shè)計(jì)、網(wǎng)站改版、云服務(wù)器、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名