Sobes.tech
Junior — Middle

multipart/form-data форматын пайдаланып деректерді беру механизмін түсіндіре аласыз ба?

sobes.tech AI

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 сұрауында ыңғайлы түрде жіберуге мүмкіндік береді.