首页 > 解决方案 > Flutter Dio send multiple image in one array as multipart

问题描述

I have to send multiple images in one single array as a multipart request. I am using the Dio package for the api request. I am using this code but it is not keeping the files in one array.

I need to send in the one array like this.

"certificate_images": [{
        "name": "scaled_image_picker1404997436.jpg",
        "type": "application\/octet-stream",
        "tmp_name": "\/tmp\/phpvY5Y1B",
        "error": 0,
        "size": 234259
    },
    {
        "name": "scaled2_image2_picker140493242436.jpg",
        "type": "application\/octet-stream",
        "tmp_name": "\/tmp\/phpvY5errY1B",
        "error": 0,
        "size": 23423459
    }
],

I am using this code to put in one array.

FormData formData;
    formData = FormData.fromMap({
      'platform': param["platform"],
      'device_id': param["device_id"],
      'user_id': userId,
      'experience_id': experienceId,
      'experience': workExperience,
      'qualifications': qualification,
      'certificates': experienceDetailModel.data.certificate,
      'work_photographs': experienceDetailModel.data.certificate,
      'work_photograph_images': [
        for (var workPhotographObj in workPhotographsDocList){
        {
          await MultipartFile.fromFile(workPhotographObj.file.path, filename: workPhotographObj.file.path.split('/').last)
        }.toList()
        }],
      'certificate_images': [
        for (var certificatesAwardsObj in certificatesAwardsDocList){
        {
          await MultipartFile.fromFile(certificatesAwardsObj.file.path, filename: certificatesAwardsObj.file.path.split('/').last)
        }.toList()
        }]
    });

and when i debug the formData, it is not keeping in one array, see my output. multiple key-value pairs are making . Pls suggest enter image description here

标签: flutterapihttpdartdio

解决方案


推荐阅读