在一个节点服务器上,我想保存上传的datauri数据作为图像。为了做到这一点,我试着解码这个PNG的内容-
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAIAAAFlEcHbAAAAB3RJTUUH1gMWFjk7nUWcXQAAAAlwSFlzAABOIAAATiABFn2Z3gAAAARnQU1BAACxjwv8YQUAAAAeSURBVHjaY7h79y7DhAkTGIA04/Tp0xkYGJ49ewYAgYwLV/R7bDQAAAAASUVORK5CYII=
并将其保存为.png
扩展名。看起来还有更多的东西。如何解码数据并将其保存为文件?
4条答案
按热度按时间kzmpq1sx1#
我试图使用
atob
解码数据并将其保存为png文件。相反,我将其保存为base64编码,但在写入缓冲区中指定编码。fs.writeFileSync('tmp/myfile.png', new Buffer(data, 'base64'));
3lxsmp7m2#
你可以使用下面的代码将你的数据URI转换成一个blob:
然后你可以将这个blob数据附加到from data中,并将其作为文件上传:
hmtdttj43#
你可以使用Node的原生fs模块来实现这一点,但是你需要像这样从URI字符串中分离出数据:
js4nwp544#
我已经创建了一个与Node.js一起使用的库,它有助于对数据URI方案进行编码和解码。我相信它可以帮助你,检查:
https://github.com/DiegoZoracKy/image-data-uri
使用这个库,在你的例子中,代码将是: