web-dev-qa-db-fra.com

Comment poster des données multipart/form en utilisant fetch dans react-native?

reference Image: Postman form

je veux poster des données de formulaire comme ça.

que dois-je préparer pour l'envoi de données de fichier image? 

j'ai Uri, type, nom de fichier, taille.

puis utilisera chercher pour cela.

L'en-tête Content-type in est 'multipart/formdata'

merci pour ton aide 

3
jehee choi

Vous devriez avoir une fonction de téléchargement, qui devrait ressembler à ceci:

upload(url, data) {
  let options = {
    headers: {
      'Content-Type': 'multipart/form-data'
    },
    method: 'POST'
  };

  options.body = new FormData();
  for (let key in data) {
    options.body.append(key, data[key]);
  }

  return fetch(requestUrl, options)
      .then(response => {
        return response.json()
          .then(responseJson => {
            //You put some checks here
            return responseJson;
          });
      });
}

Et vous l'appelez de cette façon, en envoyant le chemin de blob de l'image:

this.upload('http://exampleurl.com/someApiCall', {
  file: {
    uri: image.path,
    type: image.mime,
    name: image.name,
  }
}).then(r => {
  //do something with `r`
});
10
Mikayel Saghyan

Vous devez créer une instance de FormData et la transmettre en tant que corps à récupérer, comme suit:

const data = new FormData()
data.append("something", something)

fetch(url, { method: 'POST', body: form })
0
Sam Pettersson