我最近对{{1}}项目感兴趣,我想知道是否有简单的方法可以发送图像甚至其他类型的文件,而无需使用其他库。我没有尝试将文件上传到服务器进行存储,我只想将其广播给当时在聊天室的人。所以代码应该是最小的。但是我在编码/解码内容时非常糟糕,所以一些示例代码会很棒。
答案 0 :(得分:7)
我已经改编了Socket.io的官方聊天示例,并添加了通过base64编码发送文件/图像甚至视频的功能,您可以查看client.js
和{{1}中的源代码},以下是最相关的部分,希望它对您有所帮助。
在客户端:
index.js
在服务器端:
$('#uploadfile').bind('change', function(e){
var data = e.originalEvent.target.files[0];
readThenSendFile(data);
});
function readThenSendFile(data){
var reader = new FileReader();
reader.onload = function(evt){
var msg ={};
msg.username = username;
msg.file = evt.target.result;
msg.fileName = data.name;
socket.emit('base64 file', msg);
};
reader.readAsDataURL(data);
}
这是项目: