2012-01-16 6 views
0

私はGSPにアップロードされたファイルを表すプロパティを持つドメインクラスを持っています。そのファイルをバイト配列(byte []ファイル)として定義しました。特定のアクションが発生すると、添付ファイルを添付したメールを送信します。これは私のSendMailサービスの一部です:データベースから任意のタイプのjavaMail添付ファイルを送信

int i = 1; 
     [requestInstance.picture1, requestInstance.picture2, requestInstance.picture3].each(){ 
      if(it.length != 0){ 
       DataSource image = new ByteArrayDataSource(it, "image/jpeg"); 
       helper.addAttachment("image" + i + ".jpg", image); 
       i++; 
      } 
     } 

これは画像ファイルで正常に動作します。しかし今、私はすべてのファイルタイプで作業できるようにしたいので、これを実装する方法が不思議です。また、実際のファイル名をデータベースに保存したい。すべての助けが歓迎されます。

+0

他のファイルのファイル名を知っていますか?または単にバイナリデータですか? –

+0

@splixこれらはすべて、ドメインクラスで定義されたバイナリデータです。しかし、それは問題ではありません。それは変更することができます - ドメインクラス、GSPとコントローラのロジック。私はそれを最善の方法でやりたいだけです。 – drago

+0

この場合、あなたの問題を理解できません。ファイル名/ mimetype(同じ種類のもの)でバイナリデータを添付するだけです。つまり、このコードはバイナリデータで動作しますか? –

答えて

2

コードにファイル名とMIMEタイプが指定されている場所を確認できます。添付ファイルのデータと共にデータベースからその情報を保存して復元するのは簡単です。

データのバイト配列からMIMEタイプが何であり、どのようなファイル名が良いかを調べようとするなら、それはより困難な問題です。試してくださいthis

+0

だから私はこれを行う適切な方法は、私はmimetypesを保持するテーブルに追加フィールドを持っていると思いますか?しかし、それはまだ少し限られています。私が本当に望むのは、正しい拡張子を持つ任意の種類のファイルを送信できることです。これらのファイルはデータベースに保存する必要があります。なぜなら、これらのファイルは自分のドメインクラスインスタンスとリンクされており、どのインスタンスが接続されているかを知る必要があるからです。 – drago

+0

ファイル名拡張子からmimetypeを取得できます。あなたはファイル名を知っていますか? –

関連する問題