前端代码部分
<canvas id="cs" width='200' height='200'>
</canvas>
<input type="button" value="button" οnclick="send()" />
<img id='pic' />
<script type="text/javascript">
function send() {
var cs = document.querySelector('#cs');
var ctx = cs.getContext('2d');
ctx.fillStyle = '#c00';
ctx.fillRect(0, 0, 120, 200);
var src = cs.toDataURL('image/png', 0.1);
document.querySelector('#pic').src = src;
$.ajax({
url: '/upbase64',
dataType: 'json',
data: 'pic=' + src,
type: 'POST',
success: function(data) {
$("#pic").attr('src', data.src)
}
})
}
</script>
服务端代码部分
var base64Data = req.body.pic.replace(/^data:image\/\w+;base64,/, "");
fs.writeFileSync('./public/addd.png',new Buffer(base64Data, "base64"));
res.end();
})
注意事项:
本地的时候这样都没问题,这块要注意到的是;
在post 到 服务端的时候 base64有可能 把 base64的 +换成空格了
var base64Data = imgData.replace(/\s/g,"+");
文章来源: nodejs保存base64图片采坑