sql >> Databasteknik >  >> NoSQL >> MongoDB

Konvertera base64-bild till en fil i Node Js

Edit:Den här koden fungerade för mig. Kanske inträffar felet senare.

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

Om du sa

console.log(req.body.profile_image) 

snarare än

 console.log(typeof req.body.profile_image)

Det skulle kasta all data som finns i req.body.profile_image till en sträng innan utskrift. Det är möjligt att du bara glömde "typeof" när du kommenterade, men om du inte lade till "typeof" kan du inte vara säker på att den innehåller en sträng. Det finns mer än en konstruktör som buffertar och den kanske använder fel.

För lolz försök:

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

Vad tilldelas req.body.profile_image?

Det första argumentet till writeFileSync är en sträng, så det kan inte orsaka typfelet. Kan du vara mer specifik om vad som finns i req.body.profile_image?

Som en sidonotering, även om jag tror att detta inte är relaterat till ditt problem, är att instansiera en buffert med det "nya" nyckelordet utfasad . Kanske använder Buffer.from(...) kommer att flytta dig i riktning mot en lösning.




  1. Finns det något sätt att skapa Mongo-codecs automatiskt?

  2. Mongoose - Få lista med _id istället för en rad objekt med _id

  3. MongoDB MapReducera uppdatering på plats hur man

  4. MongoDB C# drivrutin timeout