Apache Tika 无法正确检测 MIME 类型

2024-01-04

我试图在使用inn上传文件时检测文件类型Apache Tika如下所示:

static final List<String> VALID_FILE_TYPES = Arrays.asList(

    // code omitted for brevity
    "audio/aac"
);



public static void detectFileType(InputStream inputStream, String fileId) {
    try {
        ApacheTika tika = new ApacheTika();
        String fileTypeFromFile = tika.detect(inputStream);
        
        if (!VALID_FILE_TYPES.contains(fileTypeFromFile)) {
            throw new IllegalFileUploadException("Illegal file type");
        }
    } catch (IOException ex) {
        // ...
    }
}

对于某些文件扩展名,例如*.acc, Apache Tika 检测文件类型为application/octet-stream.

所以,在这种情况下:

1.是否有解决方案可以正确检测某些文件类型(例如*.acc)并获取它们的确切文件类型,例如audio/aac ?

2.如果没有解决方案,我应该添加application/octet-stream to my VALID_FILE_TYPES为了接受audio/aac等文件?


我有同样的问题。解决了添加另一个 Tika 依赖项的问题:

    <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-parsers-standard-package</artifactId>
        <version>2.6.0</version>
    </dependency>

确保它与 Tika Core 库具有相同的版本。我还必须传递文件名以及@Gagravarr 建议的文件名

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Tika 无法正确检测 MIME 类型 的相关文章

随机推荐