5.2.1 添付できるファイル

メッセージング形態では,SOAPメッセージで添付できるファイルの種類に制限はありません。ここでは,添付ファイルのサイズおよび添付ファイルの個数の上限値を示します。また,添付ファイルに対応するMIMEタイプ,および添付ファイル使用時の注意事項について説明します。

<この項の構成>
(1) 添付ファイルのサイズの上限値
(2) 添付ファイルの個数の上限値
(3) 添付ファイルに対応するMIMEタイプ
(4) 添付ファイルの文字コードと改行コード
(5) MIMEヘッダの扱い

(1) 添付ファイルのサイズの上限値

添付できるファイルサイズは,デフォルトで100MB(104,857,600バイト)までです。この値は次に示す動作定義ファイルで変更できます。

サーバ定義ファイル
  • c4web.attachment.<識別子>.send_max_attachment_size
  • c4web.attachment.<識別子>.receive_max_attachment_size
クライアント定義ファイル
  • c4web.attachment.send_max_attachment_size
  • c4web.attachment.receive_max_attachment_size

なお,上限値を超える添付ファイルを送信しようとした場合,javax.xml.soap.SOAPConnectionクラスのcallメソッドの呼び出しで,javax.xml.soap.SOAPException例外が発生します。

(2) 添付ファイルの個数の上限値

添付できるファイル個数は,デフォルトで100個までです。この値は次に示す動作定義ファイルで変更できます。

サーバ定義ファイル
  • c4web.attachment.<識別子>.send_max_attachment_count
  • c4web.attachment.<識別子>.receive_max_attachment_count
クライアント定義ファイル
  • c4web.attachment.send_max_attachment_count
  • c4web.attachment.receive_max_attachment_count

なお,上限値を超える添付ファイルを送信しようとした場合,javax.xml.soap.SOAPConnectionクラスのcallメソッドの呼び出しで,javax.xml.soap.SOAPException例外が発生します。

(3) 添付ファイルに対応するMIMEタイプ

添付したファイルに対応するMIMEタイプは,添付したファイルの拡張子によって決まります。次の表に,SOAP通信基盤が提供するインタフェース(AttachmentPartクラスのsetContentメソッド)で添付ファイルを設定した場合に,デフォルトで設定されるMIMEタイプを示します。なお,SOAP通信基盤が提供するインタフェース(AttachmentPartクラスのsetContentTypeメソッド)を利用することで,任意のMIMEタイプを設定できますが,その場合でも添付したファイルに対応したタイプを設定してください。

表5-1 添付ファイルの拡張子とMIMEタイプの対応(メッセージング)

添付ファイルとして設定したファイルの拡張子設定されるMIMEタイプ
html,htmtext/html
txt,texttext/plain
gif,GIFimage/gif
iefimage/ief
jpeg,jpg,jpe,JPGimage/jpeg
tiff,tifimage/tiff
xwdimage/x-xwindowdump
ai,eps,psapplication/postscript
rtfapplication/rtf
texapplication/x-tex
texinfo,texiapplication/x-texinfo
t,tr,roffapplication/x-troff
auaudio/basic
midi,midaudio/midi
aifcaudio/x-aifc
aif,aiffaudio/x-aiff
wavaudio/x-wav
mpeg,mpg,mpevideo/mpeg
qt,movvideo/quicktime
avivideo/x-msvideo

この表にない拡張子のファイルを設定した場合,MIMEタイプは「application/octet-stream」となります。

(4) 添付ファイルの文字コードと改行コード

SOAP通信基盤では,テキストベースの添付ファイルの文字コードと改行コードを意識しないで,そのままSOAPメッセージを転送します。SOAPアプリケーション間で文字コードや改行コードの情報を受け渡したい場合は,MIMEヘッダのユーザ定義フィールド(「X-」で始まる定義フィールド)に,受け渡すコードの情報を設定してください。

(5) MIMEヘッダの扱い

SOAP通信基盤で設定されるMIMEヘッダ値は,RFC822に従って,すべてUS-ASCIIとして扱います。US-ASCII以外の文字列をMIMEヘッダ内に指定する場合,RFC2047に準拠したMIMEヘッダのエンコーディングやデコーディングをSOAPアプリケーション側で実装する必要があります。