Request: Comment enregistrer les données binaires téléchargées sans utiliser de pipe

Créé le 19 janv. 2017  ·  3Commentaires  ·  Source: request/request

Sur mon serveur de nœud et essayez de télécharger une image png à partir d'une URL et de l'écrire dans un fichier :

.get("https://url/for/png/file")
.on('error', function(err) {
  console.log(err)
})
.on('response', function(response){
  console.log(response.statusCode) // 200
  console.log(response.headers['content-type']); // 'image/png'
})
.on('complete', (resp: http.IncomingMessage, body: string | Buffer) => {
  fs.writeFile(".../test.png", body, 'binary');

});

Le problème principal est que le fichier écrit est corrompu (ne peut pas être ouvert).

Si j'utilise pipe au lieu de on('complete'...) à la fin, le fichier écrit est correct.

.pipe(fs.createWriteStream(".../test.png"))

Quelle est exactement la différence et que me manque-t-il pour pouvoir écrire le fichier ?

Commentaire le plus utile

utiliser l'encodage : option nulle

Tous les 3 commentaires

Le même problème.

utiliser l'encodage : option nulle

@lambdacerro Merci, je fermerai ce problème alors.

Cette page vous a été utile?
0 / 5 - 0 notes