我的NodeJS-Server接收base64编码的图片。
data:image/jpeg;base64,/9j/4QCcRXhpZgAASUkqAAgAAAA ... CiiigD//Z
接收到的数据应该保存为jpg格式,因此我使用了一个Buffer和FileSystemWriter:
var imageBuffer = new Buffer(data, 'base64'); //console = <Buffer 75 ab 5a 8a ...
fs.writeFile("test.jpg", imageBuffer, function(err) { //... });
fs.writeFile没有抛出错误。保存了一个JPEG文件,但我无法打开它。Image-Viewer显示:
File is damaged or too big.
原始文件为6 kb,新文件为7 kb。
5条答案
按热度按时间drnojrws1#
您必须从它中剥离url meta信息,即
data:image/jpeg
部分。(重复@CBroe所说的)下面是一个小函数,用于从输入字符串返回正确的信息。然后可以使用上面的方法保存缓冲区。
u5rb5r592#
另一种方法是在剥离 meta信息之后使用带有编码选项
base64
的fs.writeFile
。rmbxnbpk3#
在这里你可以用我做的小改动
最后你的文件看起来像
1572341624757filename.jpeg
eni9jsuy4#
试试这个简单的方法
请关注此处1)
data:image/png;base
存在png
2)此处也存在replace(/^data:image\/png;
png
且名称必须保存为3)writeFile("out.png
png
uwopmtnx5#