Следующий код отправляет один файл в сообщении 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". Для отправки файлов с помощью многопартовых форм используйте 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"));