Node.js NodeJS将base64编码的图像写入文件

Node.js NodeJS将base64编码的图像写入文件,node.js,image,image-processing,express,base64,Node.js,Image,Image Processing,Express,Base64,我在stackoverflow搜索并尝试了所有的解决方案,但在我的实例中似乎没有一个有效。基本上,我有一个图像,由html5画布编辑,从客户端上传,我需要将其保存到磁盘,但不幸的是,我无法打开刚刚保存的文件。(我正在使用Windows 7) 我的代码: var base64Data = req.body.image.replace(/^data:image\/(png|gif|jpeg);base64,/,''); require('fs').writeFile('public/aboutToG

我在stackoverflow搜索并尝试了所有的解决方案,但在我的实例中似乎没有一个有效。基本上,我有一个图像,由html5画布编辑,从客户端上传,我需要将其保存到磁盘,但不幸的是,我无法打开刚刚保存的文件。(我正在使用Windows 7)

我的代码:

var base64Data = req.body.image.replace(/^data:image\/(png|gif|jpeg);base64,/,'');
require('fs').writeFile('public/aboutToGiveUp.png', new Buffer(base64Data, 'base64'));

请尝试使用./public/aboutToGiveUp.png或确保路径与包含此代码的文件相对。

也有相同的错误,这是因为
url
path不正确,您可能会添加
app.use(“/”,express.static(path.join(u dirname,'public'))
,因此无需在url中添加
public
,请检查您的url路径一次

工作样本:

  • url=req.protocol+'://'+req.headers.host+“/”+filename

  • url=req.protocol+”://“+req.headers.host+”/images/“+filename//它在
    public/images


包含文件但无法打开的路径。您如何尝试打开该文件?你能显示URL吗?我们添加了
app.use(express.static('public'))
因此无需在url中添加public。请检查一下url。