Javascript Socket.io:同一映像不连续发送两次

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

我有聊天应用程序,它有一个功能,你可以发送图像,但我现在发现,它不能发送两个图像连续两次,但你可以发送相同的图像两次像这样

-发送图像1

-发送图像2

-发送图像1

我还有一个功能,你可以粘贴图像和发送(剪贴板),它可以连续发送图像,所以我很困惑是什么原因造成的? 这是我的代码:

客户端:

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”
事件。你能把它作为答案贴出来吗?是的,当然可以:)