Вы не можете повторно выбрать и загрузить тот же файл, кроме 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
на свой рабочий стол, например, а затем снова щелкните по выбору файла, появится диалоговое окно выбора файла, и вы попытаетесь выбрать тот же файл снова - браузер просто ничего не делает, и окно предупреждения не появляется.