sql >> Database teknologi >  >> NoSQL >> MongoDB

Konverter base64-billede til en fil i Node Js

Edit:Denne kode virkede for mig. Måske sker fejlen senere.

var fs = require("fs");
var image = "+MZScHeJQ9Cz5dfxnEmIMHWMZyZYnYx8Rrhj0HbtfGUanv5w3UHUyADbiGsKJxeM1yV4uGwBS7cYlAec1w0AX6xg2A1O854UF8OS6PAP1MtzkeFnrNlD41U8XFeGrp1fn3jRMUs8sqS61umSS2rR2NDhppjZ4OvnOWBAq6X+sQNkhKkfZOdYsZOpz8fWIQb6wQ/GchVCgfZko4PMDg1DSumausG6o+2E6wKLLjKReUaHEQXKJV8h85XEKN4p/WEBvTHmmJ/IN178YJVgrGmfOScAuBPp+sggGA7/wC1kgbDiacbGABOcCLHVRpMuBQh5Xn4xqARF03pwkJT23LhxGLiSGp8mCVWDrzPf3iwp4C3nDSg2VUfNwgDvm6vrIiFJvp8ZHIdjoFx8BX0OH0+8TVii3GAKKc2kjz7dYqUCdsuMOm2hrr+h//Z";
var bitmap = new Buffer(image, 'base64');
fs.writeFileSync("images/example.jpg", bitmap);

Hvis du sagde

console.log(req.body.profile_image) 

snarere end

 console.log(typeof req.body.profile_image)

Det ville kaste alle data, der er i req.body.profile_image, til en streng før udskrivning. Det er muligt, at du lige har glemt 'typeof', når du kommenterer, men hvis du ikke tilføjede 'typeof', kan du ikke være sikker på, at den indeholder en streng. Der er mere end én konstruktør til buffer, og den bruger muligvis den forkerte.

For lolz prøv:

Buffer.from(String.fromCharCode.apply(null, new Uint16Array(req.body.profile_image)), "base64")

Hvad bliver tildelt til req.body.profile_image?

Det første argument til writeFileSync er en streng, så det kan ikke være årsag til typefejlen. Kan du være mere specifik med hensyn til, hvad der er indeholdt i req.body.profile_image?

På en sidebemærkning, selvom jeg tror, ​​at dette ikke er relateret til dit problem, er instansiering af en buffer med det 'nye' søgeord udfaset .Måske bruger Buffer.from(...) vil bevæge dig i retning af en løsning.




  1. Kør databasemigrering (mongodb) med node.js

  2. Forespørgsel på en liste i mongoengine; indeholder vs in

  3. Kort reducere udføre mislykkedes med pymongo men succes i mongo shell

  4. Spring Boot + MongoDB Id-forespørgsel