Отправка многочастных сообщений в форме

Следующий код отправляет один файл в сообщении PUT.

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/form-data", не "multipart/mixed". Чтобы отправить файлы с использованием multipart форм, используйте MultipartFormProvider. Этот провайдер требует, чтобы вы знали имена элементов управления для различных полей формы, чтобы каждая часть была связана с правильным элементом управления. Например, чтобы отправить форму с элементами управления, называемыми "files" и "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"));