Java检查文件内容

Java检查文件内容,java,file,validation,Java,File,Validation,我有一个JEE6应用程序,通过POST接受文件。我可以执行服务器端基本测试来确保文件扩展是正确的,但是有一种方法来检查文件内容,以确保我不处理它,除非我很高兴它是一个有效的文件,也就是说,为了避免有人仅仅重命名文件扩展名 ,如果这些是基于文本的文件,请考虑使用Apache Tiga的类。 这将采用InputStream和TikaMetadata类,并设置内容类型元数据字段,这是一种标准的mime类型(例如-text/html、application/xml等)。根据预期的mime类型检查该文件的

我有一个JEE6应用程序,通过POST接受文件。我可以执行服务器端基本测试来确保文件扩展是正确的,但是有一种方法来检查文件内容,以确保我不处理它,除非我很高兴它是一个有效的文件,也就是说,为了避免有人仅仅重命名文件扩展名

,如果这些是基于文本的文件,请考虑使用Apache Tiga的类。 这将采用
InputStream
和Tika
Metadata
类,并设置内容类型元数据字段,这是一种标准的mime类型(例如-text/html、application/xml等)。根据预期的mime类型检查该文件的输出,以验证该文件是否“有效”

但是要小心,这将消耗您的输入流,因此如果您以后要使用该文件,请务必进行复制。

如果您知道该文件的名称,可以尝试将其与
文件返回的值进行比较。probeContentType(tempFile)
(文档)


MIME类型可以有任意数量的可选参数(例如“text/plain;charset=UTF-8”),因此您可能希望使用该方法进行比较,而不仅仅是比较字符串。

这取决于您希望执行的操作。。。如果您正在接收大文件,并且系统中有许多用户,那么这对系统性能来说似乎是个坏主意。但是,从技术上讲,是的,你可以打开任何上传的文件,但是你应该更具体地说明你想要验证什么,或者至少你想要什么类型的文件。。。