java-使用Tika jars进行Mimetype检查
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用Tika jars进行Mimetype检查,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2663字,纯文字阅读大概需要4分钟。
内容图文
![java-使用Tika jars进行Mimetype检查](/upload/InfoBanner/zyjiaocheng/660/b075561d590d4642bb967d900d3047b4.jpg)
我正在开发单独的标准Java批处理程序.我正在尝试使用Tika Jars确定文件附件的模仿类型.我正在使用Tika 1.4 Jar文件.
我的代码看起来像
Parser parser= new AutoDetectParser();
InputStream stream = new FileInputStream(fileAttachment);
int writerHandler =-1;
ContentHandler contentHandler= new BodyContentHandler(writerHandler);
Metadata metadata= new Metadata();
parser.parse(stream, contentHandler, metadata, new ParseContext());
String mimeType = metadata.get(Metadata.CONTENT_TYPE);
logger.debug("File Attachment: "+fileattachment.getName()+" MimeType is: "+mimeType);
此代码不适用于Office 03和07文档.
从日食运行时,我得到了正确的模仿类型.
我建立了jar文件,并从命令中运行了错误的mimetypes.
out put from command
------------
File Attachment: Testpdf.pdf MimeType is: application/pdf
File Attachment: Testpdf.tif MimeType is: image/tiff
File Attachment: Testpdf.xlsx MimeType is: application/x-tika-ooxml
File Attachment: Testpdf.xltx MimeType is: application/x-tika-ooxml
File Attachment: Testpdf.pptx MimeType is: application/x-tika-ooxml
File Attachment: Testpdf.docx MimeType is: application/x-tika-ooxml
File Attachment: Testpdf.xls MimeType is: application/zip
File Attachment: Testpdf.doc MimeType is: application/x-tika-msoffice
File Attachment: Testpdf.dot MimeType is: application/x-tika-msoffice
File Attachment: Testpdf.ppt MimeType is: application/x-tika-msoffice
File Attachment: Testpdf.xlt MimeType is: application/vnd.ms-excel
我尝试使用OfficePraser,OOXMLParser.它不起作用.
我尝试使用tika 0.9 jar文件. mimeTypes正确出现,但是如果我的文件附件中的任何一个是“可编辑的pdf”,我的批处理进程就都快死了(如代码中的“ exit(0);”).
如果我有新的tika jars,则它会给出错误的mimeTypes.
请帮助我.提前致谢.
CVSR Sarma
解决方法:
首先,您使用了错误的Apache Tika.如果您只想知道文件类型,则应该直接使用Detection API(javadocs),例如:
TikaConfig tika = new TikaConfig();
Metadata metadata = new Metadata();
metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
String mimetype = tika.getDetector().detect(stream, metadata);
如果您的类路径上只有tika-core jar,则上面的检测将使用Mime Magic和Filename提示.这样一来,它就可以获取大多数文件,尤其是如果它们具有正确的扩展名时,但是它只会遇到名称错误的“容器格式”
容器格式如zip,ole2等,其中一种文件格式可以包含多种类型(例如ods,xlsx,keynote都使用.zip,.doc和.xls都使用ole2).如果要进行检测以在容器内查找以获得更准确的结果,则还需要包括tika-parser jar及其依赖项.
请注意,作为explained in the Javadocs,您的流需要支持标记和重置才能检测到工作.这样Tika可以读取流的第一位,查看流以了解您的文件是什么,然后将流返回到准备用于其他用途的位置(例如,解析).大多数流应该,但如果不是,最简单的解决方法是通过TikaInputStream.get将其包装在TikaInputStream中,从而为您整理所有内容
内容总结
以上是互联网集市为您收集整理的java-使用Tika jars进行Mimetype检查全部内容,希望文章能够帮你解决java-使用Tika jars进行Mimetype检查所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。