正如一些评论者所指出的那样,mimetypes和文件扩展名之间没有通用的1:1映射…某些mimetypes具有多个可能的扩展名,许多扩展名由多个mimetypes共享,而某些mimetypes没有扩展名。
在任何可能的情况下,最好存储mimetype并继续使用它,而不必考虑扩展名。
就是说,如果您确实想要获得给定mimetype的最常见文件扩展名,那么Tika是一个不错的选择。Apache
Tika拥有大量已知的mimetypes,对于其中许多mimetypes,它也知道mime魔术可用于检测,常见扩展名,描述等。
如果您想获得最常见的JPEG文件扩展名,那么如本Apache
Tika单元测试所示,您只需执行以下 *** 作:
MimeTypes allTypes = MimeTypes.getDefaultMimeTypes(); MimeType jpeg = allTypes.forName("image/jpeg"); String jpegExt = jpeg.getExtension(); // .jpg assertEquals(".jpg", jpeg.getExtension());
关键是您需要加载Tika
jar中捆绑的xml文件,以获取所有mimetypes的定义。如果您也可能要处理自定义的模仿类型,那么Tika支持这些,并将第一行更改为:
TikaConfig config = TikaConfig.getDefaultConfig(); MimeTypes allTypes = config.getMimeRepository();
通过使用TikaConfig方法获取MimeType,Tika还将检查您的类路径中的自定义mimetype定义,并包括这些定义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)