This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Send Multipart Form Messages

The following code sends one file in a PUT message.

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);

The provider sets the appropriate Content-Type header field in the request message to the type of file derived from the file name extension, and adds a Content-Disposition field naming the file. In this example, the values are "image/jpeg" with file name "imageFile.jpg".

To upload multiple files in a "multipart/mixed" message, possibly of different types, create an array of FileProviders by specifying an array of file names and use this array as a delegate to a MultipartProvider. In the following code, each header of the multipart message contains a Content-Type field and a Content-Disposition field with a file name attribute naming the file.

url = "www.somewebsite.com";
provider = MultipartProvider(FileProvider(["image1.jpg", "file1.txt"]));
req = RequestMessage(PUT, [], provider);
resp = req.send(url);

In practice, most servers that accept multipart content expect it to be of type "multipart/form-data", not "multipart/mixed". To send files using multipart forms, use a MultipartFormProvider. That provider requires you to know the control names for the various fields of the form, so that each part is associated with the correct control. For example, to send a form with controls called "files" and "text", where the first accepts multiple files and the second accepts just one, create a provider based on the following code:

provider = MultipartFormProvider("files", FileProvider(["image1.jpg", "file1.txt"]),...
    "text", FileProvider("file1.txt"));

If a server requires multiple files specified by using a nested format, use the following code pattern:

provider = MultipartFormProvider("files", MultipartProvider(FileProvider(["image1.jpg", "file1.txt"])),...
    "text", FileProvider("file1.txt"));