【发布时间】:2017-06-08 15:06:56
【问题描述】:
您无法重新选择并上传相同的文件,除非在 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,然后再次单击文件选择器,将出现文件选择对话框并尝试选择相同的文件再次文件 -- 浏览器什么也不做,也不会出现警告框。
【问题讨论】:
-
介意解释一下您想要更好地解决的问题吗?我不知道你想达到什么目的。
-
你确定吗?我也在 Chrome 和 IE 上收到更改事件。 AFAIK 文件输入'
.onchange几乎适用于任何浏览器。 -
我需要解释一下:你不能重新选择/重新上传同一个文件,即如果你选择了一个文件,你就不能再次选择它——它什么都不做。
-
在我看来,“上传同一个文件”意味着您提交/发送同一个文件两次。在您的情况下,您是在提交之前选择它。
-
本题没有问题。
标签: javascript html file-upload