我有这样一个数据URL:如何解析Node中的数据URL?
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
是什么让这个作为二进制数据最简单的方法(比如,Buffer
),这样我就可以把它写入一个文件?
我有这样一个数据URL:如何解析Node中的数据URL?
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
是什么让这个作为二进制数据最简单的方法(比如,Buffer
),这样我就可以把它写入一个文件?
把数据放到一个缓冲区使用“的base64”编码,然后写一个文件:
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);
试试这个
var dataUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
var buffer = new Buffer(dataUrl.split(",")[1], 'base64');
我也遇到过这样的问题(解析和验证数据URL),并发现了以下解决方法:https://gist.github.com/bgrins/6194623
我创建了2个包,以便在代码中更轻松地使用数据URL。在这里,他们是: https://github.com/killmenot/valid-data-url
https://github.com/killmenot/parse-data-url
退房examples
如果有什么它不是一个PNG? –
替换适当的文件扩展名?这只是一个例子,一般的解决方案是:(1)在'data:whatever/whatever; base64',part,(2)将它放入一个使用'base64'的Buffer中,(3)写这个到一个文件。如果MIME类型不同,请使用不同的文件扩展名/使用正则表达式/等等。 –
'var data = string.substr(string.indexOf('base64')+ 7)''? –