我有这样一个数据网址:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
是什么让这个作为二进制数据最简单的方法(比如, Buffer
),这样我就可以把它写入一个文件?
我有这样一个数据网址:
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
检查出的例子