createFormDataWithMixedFiles static method

Future<FormData> createFormDataWithMixedFiles({
  1. Map<String, dynamic>? fields,
  2. List<FileUploadItem>? files,
})

Create FormData with mixed files (images, videos, documents)

Implementation

static Future<FormData> createFormDataWithMixedFiles({
  Map<String, dynamic>? fields,
  List<FileUploadItem>? files,
}) async {
  final formData = FormData();

  // Add regular fields
  if (fields != null) {
    fields.forEach((key, value) {
      if (value != null) {
        formData.fields.add(MapEntry(key, value.toString()));
      }
    });
  }

  // Add files
  if (files != null) {
    for (var item in files) {
      if (item.file.existsSync()) {
        final multipartFile = await MultipartFile.fromFile(
          item.file.path,
          filename: item.filename ?? item.file.path.split('/').last,
        );
        formData.files.add(MapEntry(item.fieldName, multipartFile));
      }
    }
  }

  return formData;
}