Для этого плагина довольно много вариантов (jquery-file-upload), и документы выглядят хорошо, но я все еще немного запутался. У меня есть форма, которая выглядит так:
<form id="fileupload" action="/file-upload" method="POST" enctype="multipart/form-data">
<div class="form-buttons">
<span id="add-files-wrap">
<span>Add Files</span>
<input id="add-files-btn" type="file" name="files[]" multiple>
</span>
<button id="upload-btn" type="button" onclick="uploadFiles()" class="btn-disabled">
<span>Start Upload</span>
</button>
</div>
</form>
Когда файл или файлы добавляются, срабатывает обратный вызов add
в инициализаторе загрузки файлов:
$('#fileupload').fileupload({
url: '/file-upload',
sequentialUploads: true,
add: function(e, data) {
$.each(data.files, function(idx, file) {
MY_FILES.push(file);
}
}
});
Затем, когда будет нажата кнопка загрузки в форме:
function uploadFiles() {
for (var i=0; i<MY_FILES.length; i++) {
// Submit the file - how ???
}
}
Я хотел бы отправлять / отправлять каждый файл по одному, используя отдельные запросы для каждого. Я знаю, что могу сделать fileupload('send', {files: MY_FILES})
, но я бы хотел, чтобы обратный вызов запускался при каждом успешном ответе на запрос. Меня немного смущают все варианты обратного вызова в документации.
Изменить:
Ответил на свой вопрос.