sql >> Database >  >> NoSQL >> MongoDB

Converteer base64-afbeelding naar een bestand in Node Js

Edit:deze code werkte voor mij. Misschien gebeurt de fout later.

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);

Als je zei

console.log(req.body.profile_image) 

in plaats van

 console.log(typeof req.body.profile_image)

Het zou alle gegevens in req.body.profile_image casten naar een string voordat het wordt afgedrukt. Het kan zijn dat je het 'typeof' bent vergeten bij het plaatsen van een opmerking, maar als je het 'typeof' niet hebt toegevoegd, weet je niet zeker of het een string bevat. Er is meer dan één constructor om te bufferen en het kan zijn dat deze de verkeerde gebruikt.

Probeer voor de lolz:

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

Wat wordt toegewezen aan req.body.profile_image?

Het eerste argument om FileSync te schrijven is een string, dus het kan de typefout niet veroorzaken. Kunt u specifieker zijn over wat er in req.body.profile_image staat?

Even terzijde, hoewel ik denk dat dit niets met uw probleem te maken heeft, is het instantiëren van een buffer met het 'nieuwe' trefwoord verouderd .Misschien met behulp van Buffer.from(...) zal je in de richting van een oplossing brengen.




  1. Groupby in MongoTemplate retourneert lege velden

  2. Referentie bijwerken samen met andere waarden Mongoose

  3. mongoexport syntaxis foutmelding

  4. Hoe alleen de waarde van een veld in mongodb te retourneren