将文件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文档 。