Apache Tika无法正确检测MIME类型



在上传文件usinnApache 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添加到我的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建议的

相关内容

最新更新