マルチパート フォーム メッセージの送信
次のコードは、PUT メッセージで 1 つのファイルを送信します。
import matlab.net.http.* import matlab.net.http.field.* import matlab.net.http.io.* provider = FileProvider('dir/imageFile.jpg'); req = RequestMessage('PUT',[],provider); resp = req.send(url);
プロバイダーは、要求メッセージの適切な Content-Type ヘッダー フィールドを、ファイル名拡張子から派生したファイル タイプに設定し、ファイル名の Content-Disposition フィールドを追加します。この例では、値は "image/jpeg"
で、ファイル名は "imageFile.jpg"
です。
タイプの異なる可能性のある複数のファイルを "multipart/mixed"
メッセージでアップロードするには、ファイル名からなる配列を指定して FileProviders
の配列を作成し、この配列を MultipartProvider
へのデリゲートとして使用します。次のコードでは、マルチパート メッセージの各ヘッダーには Content-Type フィールドと、ファイルの名前を指定するファイル名属性をもつ Content-Disposition フィールドが含まれます。
url = "www.somewebsite.com"; provider = MultipartProvider(FileProvider(["image1.jpg", "file1.txt"])); req = RequestMessage('PUT', [], provider); resp = req.send(url);
実際には、マルチパート コンテンツを受け入れるほとんどのサーバーでは、コンテンツが "multipart/mixed"
型ではなく "multipart/form-data"
型であると想定します。マルチパート フォームを使用してファイルを送信するには、MultipartFormProvider
を使用します。このプロバイダーでは、各パートが正しいコントロールと関連付けられるように、ユーザーがフォームの各種フィールドのコントロール名を知っている必要があります。たとえば、複数ファイルを受け入れる "files"
と 1 つのみのファイルを受け入れる "text"
というコントロールをもつフォームを送信するには、次のコードに基づいてプロバイダーを作成します。
provider = MultipartFormProvider("files", FileProvider(["image1.jpg", "file1.txt"]),... "text", FileProvider("file1.txt"));
サーバーで、入れ子形式を使用して指定される複数ファイルを必要とする場合、次のコード パターンを使用します。
provider = MultipartFormProvider("files", MultipartProvider(FileProvider(["image1.jpg", "file1.txt"])),... "text", FileProvider("file1.txt"));