Télécharger une image à l'aide d'Axios et la convertir en base64
J'ai besoin de télécharger un .jpg image à partir d'un serveur distant et de le convertir en un format base64. Je suis à l'aide d'axios que mon client HTTP. J'ai essayé de délivrer un git demande au serveur et la vérification de la response.data
toutefois, il ne semble pas fonctionner comme ça.
Lien vers axios: https://github.com/mzabriskie/axios
Lien en base64 de mise en œuvre: https://www.npmjs.com/package/base-64
Je suis en utilisant NodeJS /Réagir de façon atob/btoa ne fonctionne pas, hense la bibliothèque.
axios.get('http://placehold.it/32').then(response => {
console.log(response.data); //Blank
console.log(response.data == null); //False
console.log(base64.encode(response.data); //Blank
}).catch(err => console.log(err));
Avez-vous essayé de changer responseType-à-dire blob? De docs "//
responseType
indique le type de données que le serveur répond avec des"OriginalL'auteur Hobbyist | 2017-01-25
Vous devez vous connecter pour publier un commentaire.
Cela a très bien fonctionné pour moi:
si vous utilisez
react-native
, ajoutez à cela le haut de vos fichiers:global.Buffer = global.Buffer || require('buffer').Buffer
Merci, fonctionne très bien! Si vous mettez le base64 dans <img src="" ... alors n'oubliez pas de préfixe de la chaîne base64 avec des "data:image/jpeg;base64, "
OriginalL'auteur sean-hill
Il pourrait y avoir une meilleure façon de le faire, mais j'ai fait comme ceci (sans les extra comme
catch()
, etc.):J'ai un soupçon qu'au moins une partie de votre problème est peut-être côté serveur. Même sans fixation
{ responseType: "blob" }
vous avez dû avoir quelque chose dans votreresponse.data
de sortie.OriginalL'auteur bjunc