验证文件/获取Java/Groovy中的真实文件类型?

Ste*_*all 3 java groovy content-type file-upload

我需要确定文件是否属于给定的一组真实类型,我想知道最好的方法是什么.

基本上,我真的只需要检查PDF,图像和一些微软word文件类型.我听说过使用imagemagick和捕获异常来进行图像测试,但其他的呢?

有任何想法吗?

tim*_*tes 6

有用于获取MIME类型的一些方法,此页面上点击这里

前几个例子根据文件扩展名猜测MIME类型,正如它所说,一个更强大的方法是使用Apache Tika框架,它支持许多文件类型.

以下是使用Tika(在Groovy中)的示例:

// 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' ) ) )
Run Code Online (Sandbox Code Playgroud)

那输出:

15:15:56 [tim_yates@mac] TikaTest $ groovy test.groovy 
image/tiff
image/tiff
Run Code Online (Sandbox Code Playgroud)