首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中获取正确的MIME文件类型

在Java中获取正确的MIME文件类型
EN

Stack Overflow用户
提问于 2022-06-22 18:41:23
回答 1查看 376关注 0票数 1

我读到,Files.probeContentType(path)可以用于获取文件的文件类型,而无需依赖文件扩展名。但是,在我的示例中,如果删除文件类型,则函数将返回文件类型"null“。如果我附加了正确的扩展名,那么我得到的类型是"image/jpeg“。这里发生了什么事,或者我对probeContentType的理解是不正确的?我期望它返回"image/jpeg“,而不管它是否有文件扩展名。

在这种情况下,我故意从文件“Nature.jpg”中删除扩展名:

使用org.apache.tika更新 (v2.4)

代码语言:javascript
复制
Tika tika = new Tika();
String myType = tika.detect(filePath);

如果文件扩展名不存在,我会得到文件类型为“application/octet”。图像最初是jpeg,所以我希望它能检测到它是一幅图像。

EN

回答 1

Stack Overflow用户

发布于 2022-06-22 19:18:29

虽然它可能不依赖于所有实现中的文件扩展名,但它可能在其他实现中使用它。根据Oracle的说法--“这种方法的实现是高度特定于平台的,并不是绝对正确的。”

“文件类型检测器确定文件类型的方法是高度特定的。简单的实现可能检查文件扩展名(在某些平台上使用的约定)并将其映射到文件类型。在其他情况下,文件类型可以存储为文件属性,或者可以检查文件中的字节以猜测其文件类型。”- https://docs.oracle.com/javase/8/docs/api/java/nio/file/spi/FileTypeDetector.html

您可以尝试Apache Tika作为替代方案,我在这方面有很好的经验- https://tika.apache.org/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72720531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档