如何将base64转为图片,然后存在当前用户的upload 目录下
exports.upload_ecg = function(req, res, next){
var rb = req.body;
var eName = rb.event.name;
var eLevel = rb.event.level;
var eConent = rb.event.content;
var eImgBase64 = rb.event.img;
eImgBase64 = eImgBase64.replace(/^data:image\/\w+;base64,/, "");
var imgBuffer = new Buffer(eImgBase64, 'base64'); //
console.log(imgBuffer)
}
我想将ajax post上来的canvas 图片的base64编码传到后台,然后将base64转为Buffer,目前已接收到base64(eImgBase64), 我现在遇到的问题是,如何将Buffer转为图片保存在 public/upload/#{req.session.id}/img 目录下,谢谢。 主要是不会对文件的操作
11 回复
利用fs-extra模块,可以替换 fs模块,它的mkdirs方法,可以判断文件是否存在而创建多级目录,然后根据 writeFile 方法(原生fs和 fs-extra 都有,因为fs是fs-extraz子集)按照相应编码创建图片。 http://stackoverflow.com/questions/6926016/nodejs-saving-a-base64-encoded-image-to-disk
var base64Data = req.rawBody.replace(/^data:image\/png;base64,/, "");
require("fs").writeFile("out.png", base64Data, 'base64', function(err) {
console.log(err);
});
1
11
1232
123123
1楼正解
1
传base64很浪费带宽 From Noder
@satanmonkey 同意
来自酷炫的 CNodeMD
@satanmonkey 为什么这样说?