> Java > Java베이스 > 본문

Java에서 파일이 이미지인지 확인하는 방법

풀어 주다: 2019-12-27 11:37:06
원래의
8855명이 탐색했습니다.

Java에서 파일이 이미지인지 확인하는 방법

파일이 이미지인지 확인하는 Java 방법:

1 파일 접미사 이름 #🎜🎜을 확인합니다. #

String extension = "";
int i = fileName.lastIndexOf('.');
if (i > 0) {
    extension = fileName.substring(i+1);
}
//...
if("jpg".equals(extension)){
    //your code
}
로그인 후 복사
# 🎜🎜#이런 판단은 일반적으로 사용되는 방법인데, 이 방법은 매우 부적절합니다. 어떤 분들은 사진이 아닌 파일의 확장자를 살짝 바꿔서 우회하기도 합니다. 확인 결과, 업로드된 파일이 쉘, 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;
}
로그인 후 복사

더 보기 java 지식

javaBasic Tutorial

컬럼을 주목해주세요.

위 내용은 Java에서 파일이 이미지인지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿