Sobes.tech
Back to questions
Junior — Middle
136

Можете объяснить механизм передачи данных с использованием формата multipart/form-data?

Companies where asked
AndersenAndersen

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-запросе.