发送一个base64文件到Node.js套接字.io服务器

Send a file base64 to a Node.js socket.io server

本文关键字:Node js 套接字 服务器 io 文件 base64 一个      更新时间:2023-09-26

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

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

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

假设您正在使用套接字。您可以通过发出一个事件通过套接字发送此数据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文档