如何解析 Node 中的数据 URL?
问题描述:
我有一个这样的数据 URL:
I've got a data URL like this:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...
将其作为二进制数据(例如,Buffer
)获取以便我可以将其写入文件的最简单方法是什么?
What's the easiest way to get this as binary data (say, a Buffer
) so I can write it to a file?
答
使用base64"编码将数据放入缓冲区,然后将其写入文件:
Put the data into a Buffer using the 'base64' encoding, then write this to a 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 = Buffer.from(data, 'base64');
fs.writeFileSync('data.' + ext, buffer);