添付ファイルのオブジェクトとして,javax.activation.DataHandlerオブジェクトを生成します。javax.activation.DataHandlerクラスのコンストラクタを次の表に示します。
表28-10 javax.activation.DataHandlerクラスのコンストラクタ
項番 | 利用ケース | コンストラクタ | 引数の説明 |
---|---|---|---|
1 | ファイルを添付する | DataHandler(javax.activation.DataSource ds) | [第1引数] javax.activation.DataSourceオブジェクトです。 javax.activation.FileDataSourceクラスのオブジェクトを指定できます。 |
2 | メモリ上のオブジェクトを添付する | DataHandler(java.lang.Object obj, java.lang.String mimeType) | [第1引数] Javaオブジェクトです。 [第2引数] オブジェクトのMIMEタイプです。 指定できるMIMEタイプについては,「28.4.2(3) 添付ファイルの拡張子とMIMEタイプのマッピング」を参照してください。 |
添付ファイルとして送信するオブジェクトによって,javax.activation.DataHandlerオブジェクトを生成する方法が異なります。送信するオブジェクトごとに,生成する方法を示します。
すでに存在するファイルを添付して送信する場合の手順を示します。
javax.activation.FileDataSource fdSource = |
javax.activation.DataHandler dhandler = |
Javaオブジェクトを添付ファイルとして送信する場合の手順を示します。
java.awt.Image attachments = |
javax.activation.DataHandler dhandler = new |
java.lang.Stringオブジェクトを添付ファイルとして送信する場合の手順を示します。
java.lang.String attachments = new java.lang.String("あいうえお"); |
javax.activation.DataHandler dhandler = new javax.activation.DataHandler(attachments, "text/plain; charset=UTF-8"); |
wsi:swaRef形式の添付ファイルとして送信するオブジェクトが,テキストファイル,XMLファイル,またはjava.lang.Stringオブジェクト(文字列)の場合,javax.activation.DataHandlerクラスのDataHandler(Object, String)コンストラクタを使用することで,オブジェクトに含まれる文字の文字コードを指定できます。
javax.activation.DataHandlerオブジェクトの生成時に文字コードを指定しない場合,送信するオブジェクトはデフォルトの文字コード(US-ASCII)でエンコードされます。送信するオブジェクトにデフォルトの文字コード(US-ASCII)以外の文字が含まれている場合は,不正な添付ファイルを送信する扱いとなるため,特に日本語を含む場合には,適切な文字コードを指定してください。
送信するオブジェクトがXMLファイルの場合,XML宣言に指定している文字コードは使用されません。デフォルトの文字コード(US-ASCII),またはjavax.activation.DataHandlerオブジェクトの生成時に指定した文字コードでエンコードされて,XMLファイルが送信されます。
文字コードを指定するには,DataHandler(Object, String)コンストラクタの第2引数で指定するオブジェクトのMIMEタイプにcharsetパラメタを付けます。DataHandler(Object, String)コンストラクタの第2引数の記述形式を次に示します。
送信するオブジェクトのMIMEタイプ+";"+"charset"+"="+文字コード※ |