web-dev-qa-db-fra.com

Réagissez des données de formulaire post-native avec un objet et un fichier à l'aide d'Axios

enter image description here

donc, je veux télécharger des objets comme des données et un fichier comme note d'API en utilisant Axios

uploadToServer= () => {
    const file =this.state.photo

  let data2 ={sale_id:1,
            note_type_id:4,
            description:"test",
            note_content_item:" hi from broker hub"
            
            }



let data = new FormData()
data.append('data[sale_id]', '1')
data.append('data[note_type_id]', '4')

data.append('data[description]', "test")

data.append('data[note_content_item]', "test")







console.log(data)


axios({
  url: api',
  method: 'POST',
  data: data,
  headers: {
   
            'Content-Type' : 'multipart/form-data',
          'Authorization':'Basic YnJva2VyOmJyb2tlcl8xMjM='

  }
})
        .then(resp => console.log(resp.data.response))
        .catch(error => console.error(error)); 

}

j'essaie d'abord avec des données sans note que je peux le faire en facteur

enter image description here

mais avec mon code j'ai eu une erreur

message: "Impossible d'enregistrer le fichier" Response_code: 10

j'ai reçu cette erreur que si je modifie la clé des données à quelque chose d'autre enter image description here

4
Firas Abu Fares

Vous ne construisez pas FormData correctement, essayez ceci:

let data = {sale_id:1,
                note_type_id:4,
                description:"test",
                note_content_item:" hi from broker hub"            
                }
const formData = new FormData();
formData.append('data', JSON.stringify(data));
formData.append('Note', {
                     uri: "file://" //Your Image File Path
                    type: 'image/jpeg', 
                    name: "imagename.jpg",
                  });
axios({
       url    : api,
       method : 'POST',
       data   : formData,
       headers: {
                    Accept: 'application/json',
                    'Content-Type': 'multipart/form-data',
                    'Authorization':'Basic YnJva2VyOmJyb2tlcl8xMjM='
                }
            })
            .then(function (response) {
                    console.log("response :", response);
           })
           .catch(function (error) {
                    console.log("error from image :");
           })
1
Rocky