【问题标题】:Send a file base64 to a Node.js socket.io server将文件 base64 发送到 Node.js socket.io 服务器
【发布时间】:2014-05-27 06:58:16
【问题描述】:

我正在编写一个在 HTML5 画布中绘制 socket.io 的游戏,当时间结束时,将图像发送到 node.js 服务器。有什么方法可以将该画布转换为图像,将 base64 中的图像发送到 node.js 应用程序,最后将其保存到服务器中?

【问题讨论】:

    标签: javascript node.js socket.io


    【解决方案1】:

    是的,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端,你可以在socket上监听这个事件来获取图片:

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

    然后,您可以根据需要修剪前缀 data:image/png;base64, 并将内容上传到服务器。

    阅读更多关于MDN documentation for the canvas element的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-31
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      相关资源
      最近更新 更多