Apache Tika
파일 형식 알아내기
업로드하는 기능을 만들 때 보통 파일의 형식을 정해주곤 한다.
그림파일, 동영상 파일, 압축 파일 기타 여러가지.
이 때 업로드하는 파일의 형식을 확인하는 것이 기본적인 보안이다.
가장 간단한 방법은 자바스크립트로 업로드 시에
압축 파일의 확장자를 검사하는 것이다.
하지만 이 방식은 한가지 문제점이 있다.
만약, 업로더가 jpg파일을 avi파일로 확장자만 바꾼다면 업로드는 정상적일지라도 그 이후의 동작에서 에러가 날 수 있다. 따라서, 파일의 내부를 검사할 필요가 있다.
이를 처리해주는 것이 바로 apache tika이다.
import java.io.IOException;
import java.net.URL;
import org.apache.tika.Tika;
public class TikaDemo {
public static void main(String[] args) {
Tika tika = new Tika();
try {
String mimeType = tika.detect(new URL("http://tika.apache.org/tika.png"));
System.out.println(mimeType);
} catch(IOException e) {
System.err.println(e.getMessage());
}
}
}
mimetype으로 파일의 내부를 알 수 있다.
이 mimetype은 정해진 형식이 있다. 링크 .
위 링크에서처럼 확장자와 mimetype이 다르다면
확장자를 임의로 바꾼 파일이라는 뜻이 된다.