将文件base64发送到Node.js socket.io服务器

我正在用一个HTML5canvas上的socket.io绘图编程一个游戏,当时间结束时,将图像发送到node.js服务器。 有没有办法在图像中转换该canvas,将base64中的图像发送到node.js应用程序,最后将其保存到服务器中?

是的, canvas元素提供了一个名为toDataURL()的方法。 此方法返回一个data: URL,其中包含指定格式的图像的base64表示,或默认情况下为PNG:

 var canvas = document.getElementsByTagName('canvas')[0]; var dataUrl = canvas.toDataURL(); 

假设你使用的是socket.io,你可以通过发送一个事件在套接字上发送这个数据URI:

 var socket = io.connect('http://localhost'); socket.emit('image', dataUrl); 

在Node端,您可以在套接字上侦听此事件以检索图像:

 io.sockets.on('connection', function (socket) { socket.on('image', function (dataUrl) { console.log(dataUrl); }); }); 

然后,您可以修剪前缀data:image/png;base64,如有必要),然后将内容上传到服务器。

阅读更多关于canvas元素的MDN文档 。