我有聊天应用程序,它具有您可以发送图像的功能,但现在我发现它不能连续发送两张图像两次,但您可以像这样发送两次相同的图像
-发送图像 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
元素不会刷新,因此不会触发"change"事件。这里的解决方案:如何检测同一文件的输入类型=文件"更改"?