我正在尝试上传从画布中提取并通过 ajax 发布的图像,但在服务器端创建图像文件时遇到问题。
我有以下答案:https ://stackoverflow.com/a/7347358/1358670但我似乎仍然在这里或那里错过了一些东西。
这是我的javascript(浏览器)代码:
var img = myCanvas.toDataURL("image/jpeg");
// ajax request to send the image
在服务器端,我执行以下操作:
var fd = fs.openSync('./img.jpeg', 'w');
req.body.image = req.body.image.replace(/^data:image\/\w+;base64,/, "");
console.log( req.body.image );
var buff = new Buffer(req.body.image, 'base64');
fs.write(fd, buff, 0, buff.length, 0, function(err,written){
console.log( ">> "+ err );
fs.closeSync( fd );
});
如您所见,我已经记录了图像以查看它是否正确发送,并且它是,但我仍然无法打开创建的img.jpeg文件
非常欢迎任何帮助或提示。
编辑
我也在这里尝试过解决方案:https ://stackoverflow.com/a/6933413/1358670但我仍然遇到同样的问题
编辑:2
我已经测试了我的前端,在服务器端使用了一个 PHP 脚本,并且生成的图像非常好,所以我认为问题出在我的 NodeJS 代码中。