【问题标题】:How to get MIME type of file? [duplicate]如何获取 MIME 类型的文件? [复制]
【发布时间】: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


【解决方案1】:

这对我有用

String url = file.getAbsolutePath();
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String mime = fileNameMap.getContentTypeFor("file://"+url);

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 1970-01-01
    • 2014-01-30
    • 2015-09-13
    • 2018-12-01
    • 2011-04-20
    • 2014-05-19
    • 2012-05-08
    • 1970-01-01
    相关资源
    最近更新 更多