2011-03-09 7 views
3

파일이 주어진 유형의 실제 유형인지 여부를 결정해야하며,이를 수행하는 가장 좋은 방법이 무엇인지 궁금합니다.Java/Groovy에서 파일 유효성 검사/실제 파일 형식 가져 오기?

필자는 실제로 PDF, 이미지 및 일부 Microsoft Word 파일 형식 만 확인하면됩니다. 나는 imagemagick을 사용하고 이미지 테스트를하기 위해 예외를 잡는 것에 대해 들었다. 그러나 다른 것들은 어떨까?

아이디어가 있으십니까?

답변

5

on this page here

이 예제의 첫 번째 부부는 파일 확장자에 근거 해 MIME 타입을 추측 MIME 타입을 얻기위한 몇 가지 방법이 있습니다, 그리고 말한대로, 더 강력한 방법은 지원하는의 Apache Tika framework을 사용하는 것입니다 many file types.

// Grab tika and all its dependencies... 
// takes a while on first run, as it pulls in LOADS of dependencies 
@Grab('org.apache.tika:tika-core:0.9') 
@Grab('org.apache.tika:tika-parsers:0.9') 
import org.apache.tika.Tika 

println(new Tika().detect(new File('tim.tiff'))) 
println(new Tika().detect(new File('tim.renamedtiff'))) 

출력 :

15:15:56 [[email protected]] TikaTest $ groovy test.groovy 
image/tiff 
image/tiff 
+0

는 (모든?)를 파일 형식으로 내가 필요한 거의 해결 같은이 보인다! 굉장해! –

0
file.toURL().openConnection().getContentType() 

파일이기 java.io.File의

의 인스턴스 여기

은 (그루비) 티카를 사용하는 예이다 그것!

1

를 사용해 MimetypesFileTypeMap는 그루비의 매력처럼 작동합니다

import javax.activation.MimetypesFileTypeMap 

String contentType = new MimetypesFileTypeMap().getContentType("foo.gif") 
println contentType 

결과 : 이미지/GIF