gpt4 book ai didi

java - 使用 tika 检索错误的 mime 类型 (application/x-tika-ooxml)

转载 作者:行者123 更新时间:2023-12-02 18:25:58 31 4
gpt4 key购买 nike

对于 docx 文件,我检索 application/x-tika-ooxml,但我应该检索 application/vnd.openxmlformats-officedocument.wordprocessingml.document

>

这是我的方法:

public String retrieveMimeType(InputStream stream) throws IOException, TikaException {
TikaInputStream tikaStream = null;
TikaConfig tikaConfig = new TikaConfig();
MediaType mediaType = null;

try {
mediaType = tikaConfig.getDetector().detect(TikaInputStream.get(stream), new Metadata());
} catch (Throwable t) {
throw t;
} finally {
if (tikaStream != null) {
try {
tikaStream.close();
} catch (IOException e) {
}
}
}
return mediaType.toString();
}

还有我的依赖:

<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.27</version>
</dependency>

我使用 tika-core 和 tika-parsers 来检索正确的 mimetype,但它仍然给我错误的 mimetype...

最佳答案

更新您的 tika 模块。 tika-core 及其模块的版本应始终相同。

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

新的 Microsoft 文档格式(docxxlsx ...)只是来自外部的 zip 存档。较旧的 tika 版本默认情况下不会查看它们,这就是为什么根据版本,它们会将它们检测为 application/zipapplication/x-tika-ooxml。您可以阅读更多相关信息here .

但是分析文件可能导致性能下降。为了防止这种情况,您可以根据您的用例,按名称确定 mime 类型(见下文)或使用现有的 mime 类型,例如 Content-Type header .

final Metadata metadata = new Metadata();
metadata.add(TikaCoreProperties.RESOURCE_NAME_KEY, fileName);
detector.detect(stream, metadata);

在 HTTP 请求中,文件名也可能位于 Content-Disposition header 中.

关于java - 使用 tika 检索错误的 mime 类型 (application/x-tika-ooxml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70158982/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com