我正在尝试使用 Apache Tika 来确定内容类型(即 - .pdf 文件的 application/pdf)。我想使用 Apache Tika 的 org.apache.tika.detect.NameDetector 类。我的问题是它的检测方法只接受一个 InputStream。我无权访问文件的 InputStream。我只有文件名(即 - myFile.pdf)。
有没有什么好方法可以使用 Apache Tika 仅根据文件的扩展名/名称来确定内容类型?(注意 - 我想避免创建一个具有所需名称的临时文件来确定它的内容类型。)
谢谢。
您可以使用为 InputStream传入的普通Apache Tika Detector 接口null,并提供文件名。
您的代码如下所示:
TikaConfig config = new TikaConfig();
Metadata metadata = new Metadata();
metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
String mimetype = config.getDetector().detect(null, metadata);
Run Code Online (Sandbox Code Playgroud)
为了进一步简化事情,如果您使用Tika 门面类,您可以这样做:
Tika tika = new Tika();
String mimetype = tika.detect(filename);
Run Code Online (Sandbox Code Playgroud)
并且您只会返回仅从文件名中猜测的 mimetype
有关更多信息,请参阅Apache Tika 网站上的“触发检测方式”文档。
| 归档时间: |
|
| 查看次数: |
2840 次 |
| 最近记录: |