2016-12-13 7 views
0

着信メッセージから添付ファイルを抽出する方法はありますか?メッセージに添付されたPDFがあります。着信メールからの添付ファイルの抽出(およびアップロード)

['contentType':'application/pdf; name="TransakciaMK.pdf"', 'filename':'TransakciaMK.pdf', 'disposition':'attachment', 'contentBytes':'[[email protected]'] 

私がサービスにorg.apache.commons.fileupload.FileItem

ファイルのアップロード

のために使用されるコードを使用していた:これは私がコンソールに表示するものです、ファイルを保存します。

  1. これは正しい方法ですか?
  2. 「はい」の場合、添付ファイルをFileItemにレンダリングするにはどうすればよいですか?

を追加しました:

OK。私は間違ったことをする必要があります。 bodyPartList [2] .contentBytes.getBytes()を使用してバイト[]を抽出します。 contentFileByteと呼ばれる変数に。ファイルが作成され

ByteArrayInputStream fileStream = new ByteArrayInputStream(contentFileByte) 
try { docRr.putStream(fileStream) } finally { fileStream.close() } 

、それだけ含まれています:

その後

[Bの@ d2d9e15

変換の途中でどこかにエラーがなければなりませんバイト配列をファイルストリームに書き込みます。

+0

私はこれのためのサンプルコードを持っていませんので、正式な回答は書きませんが、一般的にはo.a.c.fileupload.FileItemを使用しません。これは、あなたが格納することができるbyte []として、または何でも直接渡されます。 –

+0

上記の詳細を追加して、さらに移動しようとしました。 – mrovnanik

答えて

1

これは役に立ちましたか、あなたは既にそれを見ているかもしれませんが、EmailEcaRule.groovyの最後には、メールからbodyPartListがどのように作成され、JavaMail APIで描画されているかが分かります。 bodyPartListを反復して、各パートのMIMEタイプをチェックして、テキストまたは添付ファイルとして扱わなければならないかどうかを知る必要があると思います。 - 現在、あなたのemecaルールが参照する既存のサービスは、bodyPartList [0] .contentTextから本文テキストのみを取り、非常に簡単に処理します。私は自分自身で添付ファイルを抽出しようとはしませんでしたが、前のタスクから、それは私が試してこれを行うために始めるところです。

+0

ありがとう、ロナン。私はそれを正確にやった。 groovyファイルにコードを拡張しました。 makeBodyPartListプロシージャ内のイテレータの内容を保存するサービスを呼び出します。 – mrovnanik

関連する問題