Back to questions
Andersen
Junior — Middle
136
Можете объяснить механизм передачи данных с использованием формата multipart/form-data?
Companies where asked
Answer from AI
sobes.tech AI
Формат multipart/form-data используется для передачи данных формы, особенно когда нужно отправить файлы вместе с текстовыми полями. В этом формате тело запроса разбивается на несколько частей (частей), каждая из которых содержит отдельное поле формы с заголовками и содержимым.
Каждая часть отделяется уникальным разделителем (boundary), который указывается в заголовке Content-Type. Это позволяет серверу корректно распарсить каждую часть отдельно.
В Flutter для отправки multipart-запросов часто используют пакет http или dio. Пример с использованием http:
import 'package:http/http.dart' as http;
import 'dart:io';
void uploadFile() async {
var uri = Uri.parse('https://example.com/upload');
var request = http.MultipartRequest('POST', uri);
// Добавляем текстовое поле
request.fields['username'] = 'user123';
// Добавляем файл
var file = await http.MultipartFile.fromPath('file', '/path/to/file.jpg');
request.files.add(file);
var response = await request.send();
if (response.statusCode == 200) {
print('Файл успешно загружен');
} else {
print('Ошибка загрузки');
}
}
Таким образом, multipart/form-data позволяет удобно передавать смешанные данные (файлы и текст) в одном HTTP-запросе.