我正在尝试获取有效的"音频/wav"模仿类型的文件扩展名。
使用此代码
MimeTypes mimeTypes = TikaConfig.getDefaultConfig().getMimeRepository();
String extension = mimeTypes.getDefaultMimeTypes().forName("audio/wav").getExtension();
我得到的扩展名是空字符串。
但是,使用"音频/ x -wav"扩展工作。
这是预期的行为吗?
tl;
是的,这是预期的行为。
x-
MIME子类型通常用于尚未标准化的格式。与WAV格式相对应的MIME类型是audio/vnd.wave
,audio/wav
,audio/wave
,audio/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的较旧版本中将其交换,则最好是重新运行单元测试以确保您在此过程中没有破坏任何内容!