Ajax подгрузка файлов?

На странице выводится селект, со списком. Рядом кнопка с выбором файла(реализована с помощью jQuery File Upload лагина).

Выбираю файл, идет процесс. Дальше мне нужно не дожидаясь выбирать другой селект и другой файл и так же его отправлять на обработку.

Как это реализовать?
  • Вопрос задан
  • 4616 просмотров
Решения вопроса 1
neosys
@neosys
Реализуйте что-то типа стека (массива), куда вы будете подкладывать новые файлы.

Параллельно огранизуйте функцию, которая слушает какой-то кастомный ивент типа «file-upload-added».

В функции реализуйте механизм выбора файлов из стека и отправляйте файлы на загрузку по очереди в бекграунде.

Я имею ввиду что-то типа этого:

var files = [];

.bind("file-upload-added", function() {
    var file;
    
    if (files.length) {
        file = files.pop();
    } else {
        return;
    }    
    
    $.ajax({
        ...
        ...
        ...
        
        success: function() {
            .trigger('file-upload-added');
        }
    })
});

.bind("file-upload-selected", function(file) {
    files.push(file);
    
    .trigger('file-upload-added');
})


Дальше допилите под свои нужды
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@friday
Например, так:

<iframe name="upload-iframe" style="display: none;"></iframe> <form id="upload-form" action="/upload" target="upload-iframe" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="file-input"/> <script> $('#file-input').change(function(){ $('#upload-form').submit(); }); </script>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы