Я пытаюсь загрузить большие файлы на удаленный сервер IIS с индикатором выполнения. Например, при загрузке файла размером 25 МБ индикатор выполнения достигает 100% за 10 секунд, затем я жду, пока он загрузит этот файл в течение 3 минут (все еще на 100%), то есть уведомление о ходе выполнения неверно.
Это также дубликат: Jquery и ajax индикатор выполнения слишком быстро достигает 100%
Код, который я использую:
function uploadFile () {myApp. showPleaseWait (); // показать диалог
var formData = new FormData();
var file = document.getElementById('PrijedlogStrucnogRada').files[0];
formData.append("PrijedlogStrucnogRada", file);
var file = document.getElementById('PopratnaDokumentacija').files[0];
formData.append("PopratnaDokumentacija", file);
$.ajax({
url: "/Podaci/Podaci",
type: "POST",
data: formData,
async: true,
cache: false,
dataType: 'json',
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
xhr: function () {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function (e) {
if (e.lengthComputable) {
var percentComplete = (e.loaded / e.total) * 100;
console.log(percentComplete + '% uploaded', e);
$('#uploadFile').html('Uploading... ' + percentComplete + '%');
$('.progress-bar').css('width', percentComplete + '%')
.attr('aria-valuenow', percentComplete);
$("#percentageText").text(Math.round(percentComplete) + "%");
}
else $('#uploadFile').html('hmmm');
}, false);
return xhr;
},
success: function (data) {
myApp.hidePleaseWait(); //hide dialog
$('.progress-bar').width(100);
var isSuccessful = (data['success']);
if (isSuccessful) {
}
else {
var errors = data['errors'];
displayValidationErrors(errors);
}
},
error: function (xhr, ajaxOptions, thrownError) {
myApp.hidePleaseWait(); //hide dialog
//alert(xhr.responseText);
displayValidationErrors(xhr.responseText)
}
});
}
Спасибо за помощь,
Борота Игорь