Показать сообщение отдельно
  #1 (permalink)  
Старый 19.10.2019, 10:30
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Как исправить скрипт мультизагрузки?
Доброго дня всем
Помогите исправить скрипт мультизагрузки файлов. Есть такой код

HTML

<output id="list"></output>

<div class="input-group cust-file-button">
    <div class="custom-file">
        <input type="file" class="img" id="files" name="file[]" accept="image/*" multiple>
    </div>
</div>


function handleFileSelect(evt) {
    let files = evt.target.files; // FileList object

    // Loop through the FileList and render image files as thumbnails.
    for (let i = 0, f; f = files[i]; i++) {

        // Only process image files.
        if (!f.type.match('image.*')) {
            continue;
        }

       let reader = new FileReader();

        // Closure to capture the file information.
        reader.onload = (function(theFile) {
            return function(e) {
                // Render thumbnail.
                let span = document.createElement('span');
                span.innerHTML = ['<img class="thumb" src="', e.target.result,
                    '" title="', theFile.name, '"/><span class="delete_img">Удалить</span>'].join('');
                document.getElementById('list').insertBefore(span, null);
            };
        })(f);

        // Read in the image file as a data URL.
        reader.readAsDataURL(f);
    }
}

document.getElementById('files').addEventListener('change', handleFileSelect, false);


Если выбрать один файл или сразу несколько, то все работает хорошо. Но если сначала выбрать один файл, потом добавить другой, потом третий, то в обработчике формы сохраняется только последний. Вопрос в том, как сделать так, чтобы можно было добавлять файлы по одному и они все передавались бы в обработчик.

Спасибо
Ответить с цитированием