web-dev-qa-db-fra.com

Créer un fichier image dans nodeJs à partir d'un blob

Je reçois BLOB des données sur le serveur nodeJs qui sont converties à partir d'une image PNG.

J'ai besoin de recréer une image png sur le serveur nodeJs pour pouvoir l'afficher sur un document pdf.

J'avais essayé d'utiliser FileSaver sur nodeJs mais cela ne fonctionne pas. FileSaver fonctionne bien sur l'application reactJs.

Comment puis-je enregistrer un nouveau fichier dans le répertoire local sur le serveur?

Il y a beaucoup de questions pointant sur les problèmes de création d'un blob sous forme de fichier image mais je n'ai pas pu utiliser le base64encode, donc d'autres questions n'ont pas été utiles.

8
Stevan Tosic

Dans les données BLOB du fichier image png, il y a la propriété buffer.

J'ai donc utilisé cette solution pour créer une image.

var imageBuffer = request.file.buffer;
var imageName = 'public/images/map.png';

fs.createWriteStream(imageName).write(imageBuffer);

Cela a résolu mon problème.

8
Stevan Tosic
var base64Data = req.body.image.replace(/^data:image\/png;base64,/, "");

require("fs").writeFile("out.png", base64Data, 'base64', function(err) {
  console.log(err);
});

Essayez celui-ci ici l'image est le nom sur lequel les données arrivent.

1
Jit Dhar