【发布时间】:2014-09-28 07:45:52
【问题描述】:
我正在尝试在 java 中获取 MIME 类型的文件。使用下面的代码我得到 MIME 类型:
application/octet-stream
代码:
MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap();
String mimeType = mimeTypesMap.getContentType(filePath);
PDF,但我期待application/PDF。
有什么方法可以得到准确的 MIME 类型的文件?
【问题讨论】:
-
您可以将文件扩展名映射到 mimetypes 列表。是否有多种文件需要 mimetype?
-
查看文档:docs.oracle.com/javase/7/docs/api/javax/activation/…,了解配置文件的位置。您的可能没有 .pdf 扩展名的映射。
-
你的
filePath是什么? Java 中的内容类型检测基于文件扩展名。如果你需要更聪明的东西,你应该检查 Apache Tika (tika.apache.org/1.4/detection.html) 或类似项目(例如256.com/sources/simplemagic)。 -
filePath 只不过是文件的完整路径,例如“c:/New Folder/test.txt”。
-
文件通常没有与它们一起存储的 mime 类型。您需要根据文件扩展名、文件内容或您拥有的有关文件的一些外部信息来推断类型。
标签: java mime-types