1

I'm trying to upload image to spring boot server.

But i get error

Required request parameter 'info' for method parameter type MemberInfoDto is not present

When i removed info, 'image' is not present error is occured.

What is wrong with my code?

Below is RN code

export async function postMultipartData(url, data, file) {

    let _headers = await headers()
    _headers = Object.assign(_headers, {
        'Content-Type': 'multipart/form-data;boundary=gc0p4Jq0M2Yt08jU534c0p',
    })
  
    let formData = new FormData()

    formData.append(
        "info",
        JSON.stringify(data)
    );

    if (file) {
        if (Array.isArray(file)) {
            for (let i = 0; i < file.length; i++) {
                const v = file[i];
                const fileNames = v.filename.split('.');
                const ext = fileNames[fileNames.length - 1];
        
                formData.append('images', {
                  name: v.filename,
                  type: `image/${ext}`,
                  uri: v.uri,
                });
              }
        } else {
            const filePath = file.split('.');
            const ext = filePath[filePath.length - 1];
  
            formData.append('image', {
              name: `image.${ext}`,
              type: `image/${ext}`,
              uri: file,
            }
            );
        }

    }

    return axiosInstance.post(`${url}`, formData, {
        headers: _headers
    }).then(res => {
        return res.data
    }).catch(error => {
        return error
    })
}

data param looks like

{
  gender: gender, // string
  birthDate: birthday, // date
  languages: language, // array
}

And Spring Controller Code

  @PostMapping(value = "/saveAdditionalInfo")
  public void saveAdditionalInfo(@RequestParam(value = "info") MemberInfoDto MemberInfoDto, @RequestParam(value = "image") MultipartFile image) throws IOException  {
        ~~~
  }

MemberInfoDto is

@Data
@RequiredArgsConstructor
public class MemberInfoDto {
    private String gender;
    private LocalDate birthDate;
    private String[] languages;
}

And RN Form Data post

{
  "_parts": [
    [
      "info",
      {
        "gender": "female",
        "birthday": "1997-12-31T15:00:00.000Z",
        "languages": [
          "english",
          "spanish"
        ]
      }
    ],
    [
      "image",
      {
        "name": "image.jpg",
        "type": "image/jpg",
        "uri": "file:///Users/tom/Library/Developer/CoreSimulator/Devices/B5075DC8-EB94-442D-8385-0ED076E823FE/data/Containers/Data/Application/9B66D793-0BBA-4555-AAA8-08F3D2061FD2/tmp/A89EF802-6289-4011-A958-23FD9E73FAA7.jpg"
      }
    ]
  ]
}

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.