Java에서 업로드된 파일의 MimeType을 체크하는 유틸리티
- Dependency가 모두 포함된 파일입니다.
- MimeTypeChecker-1.1.0.jar파일을 C:\에 복사합니다.
- Maven 명령어를 이용해 .m2 Repository 에 MimeTypeChecker-1.1.0-without-dependencies.jar 를 설치(저장)합니다.
mvn install:install-file -Dfile=C:\MimeTypeChecker-1.1.0-without-dependencies.jar -DgroupId=io.github.seccoding -DartifactId=MimeTypeChecker -Dversion=1.1.0 -Dpackaging=jar
- 본인의 Project/pom.xml 에 dependency를 추가합니다.
<dependency> <groupId>io.github.seccoding</groupId> <artifactId>MimeTypeChecker</artifactId> <version>1.1.0</version> </dependency>
- Clone or Download 를 클릭합니다.
- Download ZIP 을 클릭해 소스코드를 다운로드 받습니다.
- MimeTypeChecker/pom.xml의 dependencies를 본인의 Project/pom.xml 에 붙혀넣습니다.
- MimeTypeChecker/src 이하의 자바코드를 본인의 Project에 붙혀넣습니다.
- COMPARE_EXTENSION
단순히 확장자만 체크합니다. Mimetype은 체크하지 않습니다.
- JMIME_MAGIC
Mimetype을 체크합니다. 업로드된 파일의 Byte를 모두 읽어 처리하기 때문에 속도가 느립니다. 단, 라이브러리의 용량이 작습니다.
- APACHE_TIKA
Mimetype을 체크합니다. 업로드된 파일의 Mimetype만 체크하기 때문에 속도가 빠릅니다. 단, 라이브러리의 용량이 큽니다.
import io.github.seccoding.web.mimetype.ExtFilter; import io.github.seccoding.web.mimetype.ExtensionFilter; import io.github.seccoding.web.mimetype.ExtensionFilterFactory; import io.github.seccoding.web.mimetype.MimeType; public class ExtensionFilterTest { public static void main(String[] args) { ExtensionFilter filter = ExtensionFilterFactory.getFilter(ExtFilter.COMPARE_EXTENSION); boolean isPdfFile = filter.doFilter("File.pdf", "pdf"); System.out.println(isPdfFile); filter = ExtensionFilterFactory.getFilter(ExtFilter.JMIME_MAGIC); isPdfFile = filter.doFilter("File.pdf", MimeType.PDF); System.out.println(isPdfFile); filter = ExtensionFilterFactory.getFilter(ExtFilter.APACHE_TIKA); isPdfFile = filter.doFilter("File.pdf", MimeType.PDF); System.out.println(isPdfFile); } }