2012-07-04 8 views

risposta

52

inserire i dati in un buffer utilizzando la codifica 'Base64', poi scrivere questo in un file:

var fs = require('fs'); 
var string = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; 
var regex = /^data:.+\/(.+);base64,(.*)$/; 

var matches = string.match(regex); 
var ext = matches[1]; 
var data = matches[2]; 
var buffer = new Buffer(data, 'base64'); 
fs.writeFileSync('data.' + ext, buffer); 
+0

E se non è un PNG? –

+1

Sostituire l'estensione di file appropriata? Questo è solo un esempio, la soluzione generale è: (1) ottenere la parte dati dopo il 'data: qualunque/cosa; base64,' parte, (2) inserirlo in un buffer usando 'base64', (3) scrivi questo in un file. Se il tipo mime è diverso, usa un'estensione di file diversa/usa una regex/etc. –

+3

Cosa dire di 'var data = string.substr (string.indexOf ('base64') + 7)'? –

17

Prova questa

var dataUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; 
var buffer = new Buffer(dataUrl.split(",")[1], 'base64'); 
Problemi correlati