InboundMultiPartハンドラーは、MIMEマルチパート内容の送受信に使用されます。
「5.1.6 Webブラウザー・コンテンツ 」を参照してください。
|
Webブラウザーはmultipart/form-data形式を使用して内容を送信できます。
<FORM METHOD="POST" ACTION="http://lansa01/cgi-bin/jsmdirect?upload" ENCTYPE="multipart/form-data">
<INPUT NAME="COMPANY" TYPE="TEXT" SIZE ="30"/>
<INPUT NAME="FILE1" TYPE="FILE" SIZE ="60"/>
<INPUT NAME="FILE2" TYPE="FILE" SIZE ="60"/>
<INPUT NAME="FILE3" TYPE="FILE" SIZE ="60"/>
<INPUT TYPE="SUBMIT" VALUE="Send order"/>
</FORM>
特定の構成要素FILE、FIELD、FILENAMEがない場合、コマンド・ステータスNOT_EXISTが返されます。
また、FILE構成要素が存在しても使用されていない場合は、NOT_EXISTが返されます。
例
Webブラウザーのポストから内容を受信します。
RECEIVE HANDLER(InboundMultiPart) FIELD(COMPANY)
RECEIVE HANDLER(InboundMultiPart) FIELD(COMPANY) ENCODING(MS932)
以下の例では、FILE2として選択されたファイルが場所にアップロードされ、新しい名前がTOパラメータで指定されます。
RECEIVE HANDLER(InboundMultiPart) FILE(FILE2) TO(/image-upload/photo.jpeg)
以下の例の場合、ブラウザーで選択されたFILE2の名前(C:\images\holiday.jpegなど)を示し、その名前がLANSAファンクション(holiday.jpegなど)に渡されます。
RECEIVE HANDLER(InboundMultiPart) FILENAME(FILE2)
このコンテンツ・ハンドラーのSENDコマンドが実行されると、以下のステップが行われます。
作業リスト引数を使用して、MIME MultiPart応答を作成します。
名前の値ペア・データとファイル・データはリスト引数を使用して渡されます。
リストの最初のフィールドには、構成要素の内容タイプFIELDまたはFILEが含まれます。
2番目のフィールドには、構成要素の名前が含まれます。
3番目のフィールドには、構成要素の値または構成要素のファイル・パスが含まれます。
オプションの4番目のフィールドは、ファイル内容がどのようにMIMEエンコードされるかを制御します。可能な値は8bitまたはbase64です。省略値のMIMEエンコーディングは8bitです。MIME本文の内容タイプは、Java Activation Frameworkを使用するファイル拡張子で決まります。
フィールド値エンコーディングはENCODINGキーワードで決まります。
例
DEFINE FIELD(#TYPE) TYPE(*CHAR) LENGTH(10)
DEFINE FIELD(#NAME) TYPE(*CHAR) LENGTH(20)
DEFINE FIELD(#VALUE) TYPE(*CHAR) LENGTH(100)
DEF_LIST NAME(#WRKLST) FIELDS(#TYPE #NAME #VALUE) TYPE(*WORKING)
CHANGE FIELD(#TYPE) TO(FIELD)
CHANGE FIELD(#NAME) TO(COMPANY)
CHANGE FIELD(#VALUE) TO(ACME)
ADD_ENTRY TO_LIST(#WRKLST)
CHANGE FIELD(#TYPE) TO(FILE)
CHANGE FIELD(#NAME) TO(ORDER_FILE)
CHANGE FIELD(#VALUE) TO('''/order/month-order.xml''')
ADD_ENTRY TO_LIST(#WRKLST)
CHANGE FIELD(#JSMCMD) TO('SEND HANDLER(InboundMultiPart) SERVICE_LIST(TYPE,NAME,VALUE)')
構文:
|
例
SEND HANDLER(InboundMultiPart) SERVICE_LIST(TYPE,NAME,VALUE)