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

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

<input id = "uploadFile" type = "file" />

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

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

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

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

дубликат stackoverflow.com/q/25793880

user5490177 18.12.2019 16:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
63
1
91 762
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Это работает в IE (и, я полагаю, FF):

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

Не работает в Chrome (75), получаю значения для файлов и папок

Cid 28.08.2019 16:55

@Cid - похоже, работает, как описано мной в этом ответе, не уверен, в чем проблема. Вы полностью прочитали исходный вопрос? Вы прочитали мой ответ?

Jason Bunting 30.09.2019 00:37

Я даже не помню, что искал месяц назад, полагаю, я искал способ проверить, ввел ли пользователь файл или папку. Теперь я понимаю, что этот комментарий был не по теме, и, возможно, я неправильно прочитал вопрос

Cid 30.09.2019 09:48

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

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

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.info('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);"/>

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

Вы можете использовать:

    var files = uploadFile.files;

    if (files.length == 0) { console.info(true) } else { console.info(false) }
    if (files[0] == undefined) { console.info(true) } else { console.info(false) }
    if (files[0] == null) { console.info(true) } else { console.info(false) }

Все три дают одинаковый результат.

Другие вопросы по теме