Подтвердить что ты не робот

Как определить, выбрал ли пользователь файл для загрузки файлов?

Если у меня есть

<input id="uploadFile" type="file" />
тег

и кнопку отправки, как определить, в IE6 (и выше), если файл был выбран пользователем.

В FF я просто делаю:

var selected = document.getElementById("uploadBox").files.length > 0;

Но это не работает в IE.

4b9b3361

Ответ 1

Это работает в IE (и FF, я считаю):

if(document.getElementById("uploadBox").value != "") {
   // you have a file
}

Ответ 2

этот фрагмент кода работает в моей локальной среде, надеюсь, что он также будет работать в режиме реального времени

var nme = document.getElementById("uploadFile");
if(nme.value.length < 4) {
    alert('Must Select any of your photo for upload!');
    nme.focus();
    return false;
}

Ответ 3

function validateAndUpload(input){
    var URL = window.URL || window.webkitURL;
    var file = input.files[0];

    if (file) {
        var image = new Image();

        image.onload = function() {
            if (this.width) {
                 console.log('Image has width, I think it is real image');
                 //TODO: upload to backend
            }
        };

        image.src = URL.createObjectURL(file);
    }
};​

<input type="file" name="uploadPicture" accept="image/*" onChange="validateAndUpload(this);"/>

Вызовите эту функцию при изменении.