当前位置: 首页 > 知识库问答 >
问题:

Apache Tika获取允许的mime类型进行扩展

扶高歌
2023-03-14
MetaData metaData = new MetaData();
metaData.set(TikaMetaDataKeys.RESOURCE_NAME_KEY, fileName);
String mime = new TikaConfig().getDetector.detect(fileInputStream, metaData);
    null

这是第二步,我正在试图弄清楚。Tika有一种方法可以获得给定MIME的首选扩展(请参见getExtension),但我想反过来:给定扩展,检查MIME是否有效。

共有1个答案

东郭骁
2023-03-14

您的最佳选择是第二次实际运行检测,提供文件名和/或文件扩展名,然后查看mimetype Tika报告该扩展名属于什么

然后,您的代码将类似于:

TikaConfig tika = TikaConfig.getDefaultConfig();

MetaData metaData = new MetaData();
metaData.set(TikaMetaDataKeys.RESOURCE_NAME_KEY, fileName);
String bodyMime = tika.getDetector.detect(fileInputStream, metaData);

metaData = new MetaData();
metaData.set(TikaMetaDataKeys.RESOURCE_NAME_KEY, fileName);
String nameMime = tika.getDetector.detect(null, metaData);

根据您的需求,您可能希望查看这两个mime类型是否相同,或者它们是否相关。可以使用MediaTypeRegistry检查give mime类型是否是另一个类型的子类型。

 类似资料:
  • 问题内容: 获取java.sql.SQLException:ResultSet关闭后不允许进行操作当我执行以下代码时,出现异常。我认为这是因为我正在与他相同的连接对象编写新语句。我应该如何重写它,以便可以创建准备好的语句并开始使用rs2?即使连接到相同的数据库,我也必须创建一个新的连接对象吗? 问题答案: 问题在于你在中获取数据的方式。每次访问你都会获得新鲜的食物,但你不会关闭它。 这违反了Sta

  • 问题内容: 我只是想知道大多数人如何从Java文件中获取mime类型?到目前为止,我已经尝试了两个工具:。 第一个给我内存异常,第二个没有正确关闭其流。我只是想知道其他人是否拥有他们使用和正常工作的方法/库? 问题答案: 不幸, 之所以无法使用,是因为URL的这种使用将文件锁定了,例如,它是不可删除的。 但是,你有: 还有以下内容,其优点是不仅可以使用文件扩展名,而且还可以浏览内容 但是,正如上面

  • 问题内容: 作为实验,我尝试扩展-array,如下所示: 在类本身中添加一些与排序,交换,子数组构建等有关的方法。但是我在编译时遇到了这个错误: 我很好奇:为什么Java不允许扩展数组? 问题答案: 扩展基本类型(例如a 或数组)会打开安全漏洞。如果Java允许您扩展数组,则采用数组的方法将变得不安全。这就是字符串为,而数组根本不能扩展的原因。 例如,您可以重写该方法,并返回不正确大小的数组。这有

  • 请检查输出。输出在这里 为什么我在这里得到这个错误“void”类型不允许?我想我把这段代码写对了吧?这个代码有什么问题吗?请帮我理解这个错误。

  • MIME(多用途Internet邮件扩展)类型告诉浏览器如何处理某些类型的文件。 当文件发送到您网站访问者的浏览器时,它也会发送该文件的MIME类型。 MIME类型告诉浏览器文件类型以及如何将文件提供给用户。 例如,如果将.js文件发送到浏览器,则还会发送application/JavaScript MIME类型以告知浏览器.js文件是JavaScript文件,浏览器会相应地处理该文件。 大多数M

  • 我使用PHPMailer通过smtp-relay.gmail.com发送电子邮件-见上一篇文章通过G-Suite建立帐户后,我的凭据被接受,但是当电子邮件发送时,我可以看到纯文本版本,以及html版本,一路上还有一些其他角色: ... 然后是html版本,以以下内容结尾: 当我使用香草版本时,它工作得很好,没有看到纯文本或哑剧边界数据: 变量$htmlMessage仍然保存与以前相同的信息,但现在