java - 如何检测 mime 类型是否用于可执行文件?

标签 java mime-types apache-tika

我正在使用 Apache Tika 检测输入流的 MIME 类型 我想知道是否有现成的方法来检测这个文件是一个可执行文件,这里有一大堆可执行文件 mime 类型:

http://www.file-extensions.org/filetype/extension/name/program-executable-files

我想知道覆盖所有这些的最佳方法。

最佳答案

Apache Tika 的 mime 类型具有层次结构。因此,您不需要检查所有可能的可执行类型,您需要做的就是检查检测到的类型是否具有属于少数可执行伞型类型之一的父级

对于 Windows,主要的是 application/x-msdownload。您可能还想检查 application/x-ms-installer

对于 Unix,主要的是 application/x-elf,但您可能还想检查脚本格式,例如 application/x-shtext/x-perl, text/x-python

至于如何从 Tika 中的 Mimetype 转到其父级,您需要 this existing answer here - "Correct use of Apache Tika MediaType" . (注意需要递归,以防检测到的mime类型和基础可执行父类型之间有多个层次)

关于java - 如何检测 mime 类型是否用于可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35569665/

相关文章:

java - 为分层 JSON 映射中的特定属性编写 Jackson 自定义反序列化器

java - 关于java方法及其返回数据的具体练习

python - PyQt MimeData 文件名

java - 从字节数组中获取文件名

Python - Apache Tika 单页解析器

java - 如何组合两个实现?

java.lang.IllegalStateException : No Hibernate Session bound to thread

perl - 使用 Email::MIME 和 multipart/signed 解析电子邮件

php - 如何返回图像

Java : Microsoft word document to html converter style sheet