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

在Java/Groovy中验证文件/获取真实的文件类型?,java,file-upload,groovy,content-type,Java,File Upload,Groovy,Content Type,我需要确定一个文件是否是一组给定的真类型,我想知道最好的方法是什么 实际上,我只需要检查PDF、图像和一些microsoft word文件类型。我听说过使用imagemagick和捕获异常来进行图像测试,但是其他的呢 有什么想法吗?有一些方法可以获取MIME类型 前两个示例猜测基于文件扩展名的MIME类型,正如它所说的,一个更健壮的方法是使用,它支持 下面是一个使用Tika(在Groovy中)的示例: 这将产生: 15:15:56 [tim_yates@mac] TikaTest $ groov

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

实际上,我只需要检查PDF、图像和一些microsoft word文件类型。我听说过使用imagemagick和捕获异常来进行图像测试,但是其他的呢


有什么想法吗?

有一些方法可以获取MIME类型

前两个示例猜测基于文件扩展名的MIME类型,正如它所说的,一个更健壮的方法是使用,它支持

下面是一个使用Tika(在Groovy中)的示例:

这将产生:

15:15:56 [tim_yates@mac] TikaTest $ groovy test.groovy 
image/tiff
image/tiff
File是java.io.File的一个实例


就这样

MimetypesFileTypeMap在groovy中就像一个魔咒:

import javax.activation.MimetypesFileTypeMap

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

结果:image/gif

这似乎解决了我需要的几乎所有文件类型!令人惊叹的!
file.toURL().openConnection().getContentType()
import javax.activation.MimetypesFileTypeMap

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