getExtension for mimetype "audio/wav" 使用 apache tika 返回空字符串



我正在尝试获取有效的"音频/wav"模仿类型的文件扩展名。

使用此代码

MimeTypes mimeTypes = TikaConfig.getDefaultConfig().getMimeRepository();
    String extension = mimeTypes.getDefaultMimeTypes().forName("audio/wav").getExtension();

我得到的扩展名是空字符串。

但是,使用"音频/ x -wav"扩展工作。

这是预期的行为吗?

tl;
是的,这是预期的行为。


x- MIME子类型通常用于尚未标准化的格式。与WAV格式相对应的MIME类型是audio/vnd.waveaudio/wavaudio/waveaudio/x-wav(请参见此处(。有些浏览器接受或多或少的MIME类型。Apache服务器通常以x-wav发送WAV,即使我不知道为什么。

官方MIME类型现在为audio/vnd.wave,因此您可以尝试并查看它是否有效。

来源:这里

这是tika的旧版本中的错误。

您需要使用较新版本的Apache Tika来获得正确的行为。(1.15.1或1.16应该这样做(。从tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java单元测试中获取:

assertType("audio/vnd.wave", "testWAV.wav");

(该单元测试验证了官方MIME类型是检测到的官方类型,其他别名(例如audio/wav(通常会透明地映射到规范上(

另外,如果您陷入了旧的tika版本,则应该在很大程度上可以将tika-mimetypes.xml文件交换为最新版本,尽管如果您在Tika的较旧版本中将其交换,则最好是重新运行单元测试以确保您在此过程中没有破坏任何内容!

相关内容

  • 没有找到相关文章

最新更新