Java检查文件内容

时间:2013-07-25 12:51:52

标签: java file validation

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

2 个答案:

答案 0 :(得分:1)

如果这些是基于文本的文件,请考虑使用Apache Tika的DefaultDetector类。

这将采用InputStream和Tika Metadata类并设置Content-Type元数据字段,这是一个标准的mime类型(例如 - text / html,application / xml等)。根据预期的mime类型检查输出,以验证文件是否“有效”。

请注意,这将消耗您的输入流,因此如果您想稍后使用该文件,请务必制作副本。

答案 1 :(得分:1)

如果你知道文件的MIME type,可以尝试将其与Files.probeContentType(tempFile)(文档here)返回的值进行比较。

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