4D v16.3WEB GET BODY PART |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
WEB GET BODY PART
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WEB GET BODY PART ( part ; contents ; name ; mimeType ; fileName ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| part | 倍長整数 |
|
パート番号 | |||||
| contents | BLOB, テキスト |
|
パートを受け取る変数 | |||||
| name | テキスト |
|
input要素のname属性値 | |||||
| mimeType | テキスト |
|
ファイルのMIMEタイプ | |||||
| fileName | テキスト |
|
送信されたファイルの名前 | |||||
WEB GET BODY PARTコマンドはWebプロセスのコンテキストで使用され、マルチパートリクエストのボディ部を解析します。
part 引数には解析対象のパート番号を渡します。総パート数はWEB Get body part countコマンドで取得できます。
contents 引数にはパートのコンテンツが返されます。取得するパートがファイルの場合、BLOB型の引数を渡さなければなりません。Webフォームから送信されるテキストデータの場合、テキスト型の引数を渡すことができます。
name 引数にはフォームのinput 要素のname属性値が返されます。
mimeType と fileName 引数には、送信されたファイルのMIMEタイプと名前が返されます。fileName はフォーム要素 <input type="file"> を使用してファイルが送信された場合のみ値が返されます。
mimeType と fileName はオプションですが、使用する場合はペアで渡さなければなりません。
注: マルチパートリクエストのコンテキストでは、WEB GET VARIABLESコマンドで取得できる名前配列にはフォームのすべてのパートが含まれます。順番はWEB GET BODY PARTコマンドと同じです。フォーム中のパートの位置を取得するためにこのコマンドを使用できます。
警告: mimeType と fileName 引数に返される情報は、Webサーバーに送信されたHTTPリクエストに基づくもので、ファイルの内容は検証されません。それらの情報が正当であるかどうかの検証は開発者が行わなければなりません。
この例題ではWebフォームからHTTPサーバーに画像を何枚かアップロードし、それらを返されたWebページ上に表示します。Webフォームは以下のように表示されます:

HTMLソースは以下の通りです:
<body>
<form enctype="multipart/form-data" action="/4DACTION/GetFile/" method="post">
アップロードするピクチャーを選択: <br>
ピクチャーファイル1: <input name="file1" type="file"><br>
ピクチャーファイル2: <input name="file2" type="file"><br>
<input type="submit">
</form>
<hr/>
<!--4DSCRIPT/galleryInit-->
<!--4DLOOP aFileNames-->
<img src="/photos/<!--4DTEXT aFileNames{aFileNames}-->"/>
<!--4DENDLOOP-->
</body>2つの4Dメソッドがページから呼ばれています:
galleryInitのコードは以下の通りです:
C_TEXT($vDestinationFolder)
ARRAY TEXT(aFileNames;0)
C_LONGINT($i)
$vDestinationFolder:=Get 4D folder(HTML Root folder)+"photos"+Folder separator //"WebFolder/photos" フォルダー
DOCUMENT LIST($vDestinationFolder;aFileNames)GetFileのコードは以下の通りです:
C_TEXT($vPartName;$vPartMimeType;$vPartFileName;$vDestinationFolder)
C_BLOB($vPartContentBlob)
C_LONGINT($i)
$vDestinationFolder:=Get 4D folder(HTML Root folder)+"photos"+Folder separator
For($i;1;WEB Get body part count) // パートの数だけ繰り返す
WEB GET BODY PART($i;$vPartContentBlob;$vPartName;$vPartMimeType;$vPartFileName)
If($vPartFileName#"")
// ここでファイルの内容を検証すべきです
BLOB TO DOCUMENT($vDestinationFolder+$vPartFileName;$vPartContentBlob)
End if
End for
WEB SEND HTTP REDIRECT("/")
4DオブジェクトをHTMLオブジェクトにバインドする
WEB Get body part count
WEB GET HTTP BODY
WEB GET VARIABLES
プロダクト: 4D
テーマ: Webサーバ
番号:
1212
初出: 4D v13
ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)
コメントを追加