我试图在使用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(使用前将#替换为@)