Usin MVC. NET на Windows, Jquery и ajax индикатор выполнения достигает 100% слишком быстро - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь загрузить большие файлы на удаленный сервер 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)
    }
});

}

Спасибо за помощь,

Борота Игорь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...