Перетаскивание не сохранить все изображения - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема с загрузкой нескольких изображений, которая выполняется перетаскиванием, когда я выпускаю изображения, например 6 из них, иногда это занимает всего 5, иногда 6, и это происходит только потому, что я поставить в конце установленное время, если не было введено только изображение, какие-либо предложения отложить эту функцию, чтобы я мог сохранить все, что было отброшено?

 window.addEventListener("load", function () {
    // GET THE DROP ZONE
    var uploader = document.getElementById('uploader');

    // STOP THE DEFAULT BROWSER ACTION FROM OPENING THE FILE
    uploader.addEventListener("dragover", function (e) {
        e.preventDefault();
        e.stopPropagation();
    });

    // ADD OUR OWN UPLOAD ACTION
    uploader.addEventListener("drop", function (e) {
        e.preventDefault();
        e.stopPropagation();

        // RUN THROUGH THE DROPPED FILES + AJAX UPLOAD
        let tamanho = e.dataTransfer.files.length;
        let image_id_multplie = $('[name="ORDER[ARQUIVO1]"]').data('id'); // pegando esse número só para saber de qual veiculo estamos tratando

        for (var i = 0; i < e.dataTransfer.files.length; i++) {

            var xhr = new XMLHttpRequest(),
                data = new FormData();
            data.append('file-upload', e.dataTransfer.files[i]);

            xhr.open('POST', root + 'vehicles/save_image_multiple/' + image_id_multplie, true);
            xhr.onload = function (e) {
                if (xhr.readyState === 4) {
                    if (xhr.status === 200) {
                        if (i == tamanho) {
                            // OK - Do something
                            // console.log(xhr.responseText);
                        }
                    } else {
                        // ERROR - Do something
                        // console.error(xhr.statusText);
                        alert("Upload error!");
                    }
                }
            };

            xhr.onerror = function (e) {
                // ERROR - Do something
                // console.error(xhr.statusText);
                alert("Upload error!");
            };

            setTimeout(function () {// wait for 5 secs(2)
                console.log('Save image ' +  i);
            }, 8000);
            xhr.send(data);
            salvaImagensVeiculos();


        }
    });
});

http://prntscr.com/s4uc2t

...