У меня возникли проблемы с настройкой индикатора выполнения в сообщении $.ajax, которое загружает изображение в службу Cloudinary через @Controller с платформой Spring. Моя проблема в том, что событие, которое отслеживает процесс загрузки, имеет весь файл, загруженный с самого начала.
ProgressEvent {isTrusted: true, lengthComputable: true, loaded: 8718, total: 8718,
type: "progress"…}
Это мой код:
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
$.ajaxSetup({
beforeSend: function(xhr){
xhr.setRequestHeader(header, token);
}
});
/*<![CDATA[*/
for(var i = 0; i < filesList.length; i++){
/*]]>*/
var formData = new FormData();
formData.append("file", filesList[i]);
$.ajax({
xhr: function()
{
var xhr = $.ajaxSettings.xhr();
//Upload progress
xhr.upload.addEventListener("progress", function(event){
if (event.lengthComputable) {
var percentage = Math.round((event.loaded *100) / event.total);
$(".progress-bar").css("width", percentage + "%");
}
}, false);
return xhr;
},
url: "/admin/web/cms/upload",
type: "POST",
contentType: false,
processData: false,
data: formData,
success: function(data) {
$(".progress-bar").css("width", "0%");
}
});
console.log(filesList[i].size);
}
В результате индикатор выполнения всегда отображается как завершенный. Как я могу контролировать процесс загрузки изображения, чтобы показать его с индикатором выполнения? Любая помощь приветствуется. Заранее спасибо.