0
votes

Comment utiliser Axios pour télécharger l'image de ImagePicker

J'essaie de télécharger une image de fichier à API dans Postman qui fonctionne bien, mais lorsque AI Essayez l'image de fichier de ImagePicker n'a pas fonctionné.

Je pense faire quelque chose de mal lors de la création de formdata ​​p>

P> >

export function uploadImageProfile(data: any): Promise<any> {

  const config = {
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  };
  return api.post('/users/profilepic', {image: data}, config).then((res) => {
    console.log(res.data);
    return res.data;
  });
}


1 commentaires

qui réagissent la version natale?


3 Réponses :


0
votes

Vos données de formulaire doivent être comme ça.

axios.post('/users/profilepic', formdata, config).then((res) => {
    console.log(res.data);
    return res.data;
  });


7 commentaires

Dans le côté serveur montrent cette erreur: Erreur: multipart: limite non trouvée


Quelle bibliothèque utilisez-vous lors de la connexion de l'API?


Si vous n'utilisez pas Axios, veuillez essayer avec Axios. Vous écrivez 'Axios.post' au lieu de 'api.post'


API Post est une classe d'URL par défaut Axios et d'en-têtes par défaut: Axios.create () est API


Je modifie ma réponse avec quelques modifications, pouvez-vous l'essayer?


Axios Calculer la limite automatiquement.


ne travaillez pas et mon service d'API est: importer Axios de 'Axios'; const api = axios.create ({baseurl: ' localhost: 3000 / API '}) API par défaut;



0
votes
let reqObj = {
  method: "POST",
  url: 'http://example.com/upload/image',
  headers: { 
    'x-sh-auth': token,
    ...formdata.getHeaders()
  },
  maxContentLength: Infinity,
  maxBodyLength: Infinity
};


  axios(reqObj).then(result => {
    console.log(result)
  }).catch(error => {
    console.log(error)
  });


0 commentaires

0
votes

J'ai changé comment j'envoie une image sur le serveur. Maintenant, envoyez maintenant IM Base64 et dans le serveur Convertir en fichier avec FS code>.

  async saveImageProfile(imageBase64, logedUserData) {
    let base64Image = imageBase64.imageBase64.split(';base64,').pop();
    let type = imageBase64.imageBase64.split('image/').pop().split(';')[0];
    let newFileName = `${logedUserData.id}.${type}`;
    if (imageFileFilter(type)) {
      const file = await fs.writeFile('./files/' + newFileName, base64Image, { encoding: 'base64' }, function (err) {
        console.log('File created');
      });
      const url = `${baseUrl}/users/files/${newFileName}`;
      this.updateRefProfilePic(url, logedUserData);
    }
    else {
      throw new BadRequestException("Tipo de arquivo não suportado");
    }
  }


0 commentaires