nodejs保存base64图片采坑

前端代码部分

<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图片采坑