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

3

我正在使用socket.io在HTML5画布上绘制游戏,当时间结束时将图像发送到node.js服务器。有没有一种方法将画布转换为图像,将图像以base64格式发送到node.js应用程序,最后保存到服务器上?

1个回答

3

是的,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,并将内容上传到服务器。

请在MDN文档中阅读有关canvas元素的更多信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接