javascript – 重新选择并上传相同的文件

前端之家收集整理的这篇文章主要介绍了javascript – 重新选择并上传相同的文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您不能重新选择和上传相同的文件,除了在Firefox中,错误地允许您这样做:
<input type="file" id="fileChooser">
document.getElementById('fileChooser').onchange = function () {
    alert('Uploaded!');
};

这是我解决问题的方法.我想知道是否有更好的方式来实现它.

<input type="file" id="fileChooser">
var fileChooser = document.getElementById('fileChooser');
fileChooser.onclick = function () {
    this.value = '';
};
fileChooser.onchange = function () {
    if (this.value) {
        alert('Uploaded!');
    }
};

在JSFiddle:http://jsfiddle.net/scMF6/2/

说明:

您不能连续两次重新选择相同的文件,例如您在桌面上选择并上传foo.txt,然后再次单击文件选择器,出现文件选择对话框,并尝试再次选择相同的文件 – – 浏览器根本不做任何事情,并且不会出现警报框.

解决方法

您的解决方案有一个问题,选择文件后,当您单击它第二次它清除文件输入.现在如果用户没有选择一个新的文件,并取消浏览弹出,那么他的旧选择已经消失了.

这不是FF中文件输入的默认行为.

我猜,如果你有一些句柄或回调上传,那么你应该清除你的文件输入.

猜你在找的JavaScript相关文章