1

我有一个 SOAP-WebService 提供调用者能够上传 PDF、JPG、PNG 或 BMP 文件的方法。为了正确处理,我需要从 DataHandler 中获取 MIME-Type。我尝试使用 Apache Tika 获取 MIME-Type:

Tika tika = new Tika();
InputStream stream = dataHandler.getInputStream();
String mimeType = tika.detect(stream);

现在我的问题:

大多数情况下,Tika 会检测到正确的 MIME 类型,但在少数上传 JPG 的情况下,它会检测到plain/text而不是image/jpeg. 我该如何解决这个问题?

先感谢您!

4

1 回答 1

1

我不知道 Tika 有什么问题,但作为替代方案,您可以尝试MimeUtil,它做的事情几乎相同,并且由于您可以轻松配置它,所以它具有更大的灵活性。

// Define the mime type detector to use, here it will be MagicMimeMimeDetector
// As you intend to detect from a Stream
// To be done only once in a static block of your class for example    
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
...
// Get the collection of matching mime types
Collection<?> mimeTypes = MimeUtil.getMimeTypes(stream);

有关课程的更多详细信息,请MimeUtil 点击此处

于 2016-08-24T09:02:27.240 回答