Javascript Socket.io:同一映像不连续发送两次
我有聊天应用程序,它有一个功能,你可以发送图像,但我现在发现,它不能发送两个图像连续两次,但你可以发送相同的图像两次像这样 -发送图像1 -发送图像2 -发送图像1 我还有一个功能,你可以粘贴图像和发送(剪贴板),它可以连续发送图像,所以我很困惑是什么原因造成的? 这是我的代码: 客户端:Javascript Socket.io:同一映像不连续发送两次,javascript,node.js,file,socket.io,Javascript,Node.js,File,Socket.io,我有聊天应用程序,它有一个功能,你可以发送图像,但我现在发现,它不能发送两个图像连续两次,但你可以发送相同的图像两次像这样 -发送图像1 -发送图像2 -发送图像1 我还有一个功能,你可以粘贴图像和发送(剪贴板),它可以连续发送图像,所以我很困惑是什么原因造成的? 这是我的代码: 客户端: document.getElementById('fileselect').addEventListener('change', function () { if (this.files.length
document.getElementById('fileselect').addEventListener('change', function () {
if (this.files.length != 0) {
var file = this.files[0],
reader = new FileReader();
reader.onload = function (e) {
this.value = '';
socket.emit('img', {
image: e.target.result
})
};
reader.readAsDataURL(file);
};
}, false);
和服务器端
socket.on('img', function(data) {
io.in(socket.current_room).emit('img', {image: data.image, id: socket.id});
怎么了?我该如何修复它呢?这是因为如果两次拾取同一个文件,
fileselect
元素不会刷新,因此不会触发“更改”事件。这里的解决方案:这是因为如果您拾取同一个文件两次,fileselect
元素不会刷新,因此不会触发“更改”事件。这里的解决方案:这是因为如果两次拾取同一个文件,fileselect
元素不会刷新,因此不会触发“更改”
事件。解决方案您可以将其作为答案发布吗?是的,当然可以:)这是因为如果您选择同一个文件两次,则不会刷新fileselect
元素,因此不会触发“change”
事件。你能把它作为答案贴出来吗?是的,当然可以:)