Ho un URL di dati come questo:Come analizzare un URL di dati nel nodo?
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
Qual è il modo più semplice per ottenere questo come dati binari (ad esempio, un Buffer
) così posso scrivere in un file?
Ho un URL di dati come questo:Come analizzare un URL di dati nel nodo?
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
Qual è il modo più semplice per ottenere questo come dati binari (ad esempio, un Buffer
) così posso scrivere in un file?
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);
Prova questa
var dataUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
var buffer = new Buffer(dataUrl.split(",")[1], 'base64');
ho incontrato anche a queste domande (l'analisi e la validazione dei dati URL) e trovato la seguente soluzione: https://gist.github.com/bgrins/6194623
Ho creato 2 pacchetti per semplificare il lavoro con l'URL dei dati nel codice. Eccoli: https://github.com/killmenot/valid-data-url
https://github.com/killmenot/parse-data-url
Partenza examples
E se non è un PNG? –
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. –
Cosa dire di 'var data = string.substr (string.indexOf ('base64') + 7)'? –