1

呼び出し元が PDF、JPG、PNG、または BMP ファイルをアップロードできるメソッドを提供する SOAP-WebService があります。正しく処理するには、DataHandler から MIME タイプを取得する必要があります。Apache Tika で MIME タイプを取得しようとしました。

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 に答える