我通过FileReader()对象从JavaScript获取图像数据客户端(base64),然后我将该数据发布到Node.JS / Express服务器并通过以下代码写入图像:
fs.writeFile(__dirname+'/../resources/img/products/0.png', imageData, 'base64', function(err) {
if(err) return res.send({err: 'There was an error saving product image'});
res.send({});
});
但图像显示为损坏。缩短版的数据如下所示:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZkAAAEpCAYAAABBb1+7AAAACXBIW…KxrrQ4WeEi84KFqYztjvTRlkNvrolLq7JzPEcwKtOIyP8PvUG8/X++RRoAAAAASUVORK5CYII=
另外,我用(',')分割数据,只上传数组的[1],所以只有这部分被发送到服务器:
iVBORw0KGgoAAAANSUhEUgAAAZkAAAEpCAYAAABBb1+7AAAACXBIW…KxrrQ4WeEi84KFqYztjvTRlkNvrolLq7JzPEcwKtOIyP8PvUG8/X++RRoAAAAASUVORK5CYII=
编辑:对于发布尽可能欺骗的人,使用他们的代码我将变量'matches'视为null。