不可否认,Base64 格式来上传图片比其他方式要来的简单些,特别像是开发微信的项目,微信封装了一些上传文件的方法,但是在普通浏览器里面却不能允许,这给开发和调试带来很多麻烦,如果统一使用 Base64 格式上传文件,那么就跟运行环境无关了。
Base64 的形式为 data:image/png;base64,iVBORw0K…,当接收到上边的内容后,需要将 data:image/png;base64, 这段内容过滤掉,过滤成 iVBORw0K… ,然后再进行保存。
app.post('/upload', function(req, res){
//接收前台POST过来的base64
var imgData = req.body.imgData;
//过滤data:URL
var base64Data = imgData.replace(/^data:image\/\w+;base64,/, "");
var dataBuffer = new Buffer(base64Data, 'base64');
fs.writeFile("image.png", dataBuffer, function(err) {
if(err){
res.send(err);
}else{
res.send("保存成功!");
}
});
});
