Afficher une barre de progression pour le téléchargement de fichiers à l'aide de XHR2/AJAX

Je suis en train de télécharger des fichiers à l'aide d'Ajax et de montrer une coutume barre de progression du téléchargement.

Le problème est que je ne peux pas comprendre comment le faire. J'ai écrit le code pour le journal le progrès, mais ne sais pas comment faire pour lancer le téléchargement.

REMARQUE: Les fichiers sont de types différents.

Merci d'avance.

JS

//Downloading of files
filelist.on('click', '.download_link', function(e){
    e.preventDefault();
    var id = $(this).data('id');
    $(this).parent().addClass("download_start");

    $.ajax({
        xhr: function () {
            var xhr = new window.XMLHttpRequest();
            //Handle Download Progress
            xhr.addEventListener("progress", function (evt) {
                if(evt.lengthComputable) {
                    var percentComplete = evt.loaded / evt.total;
                    console.log(percentComplete);
                }
            }, false);
            return xhr;
        },
        complete: function () {
            console.log("Request finished");
        }
    })
});

HTML et PHP

    <li>
    <div class="f_icon"><img src="' . $ico_path . '"></div>
    <div class="left_wing">
       <div class="progressbar"></div>
       <a class="download_link" href="#" id="'.$file_id.'"><div class="f_name">' . $full_file_name . '</div></a>
       <div class="f_time_size">' . date("M d, Y", $file_upload_time) . '&nbsp; &#149; &nbsp;' . human_filesize($file_size) . '</div>
    </div>

    <div class="right_wing">
       <div class="f_delete">
       <a class="btn btn-danger" href="#" aria-label="Delete" data-id="'.$file_id.'" data-filename="'.$full_file_name.'"><i class="fa fa-trash-o fa-lg" aria-hidden="true" title="Delete this?"></i>
       </a>
    </div>
   </div>
    </li>
Comment êtes-vous d'envoyer le fichier que vous avez téléchargé à l'utilisateur?
Si vous vous demandez comment suis-je télécharger un fichier, et bien, c'est ce que je veux savoir comment dois-je télécharger le fichier.
Il a regardé comme si vous étiez à se demander comment montrer le progrès, mais, à la lecture, c'est un supplément pour le téléchargement. Réponse Simple: ne pas utiliser de l'ajax pour télécharger un fichier, utilisez le navigateur. <a href='url to download' target='_blank'>download</a>
Oui, qui peut évidemment être fait, mais j'ai besoin d'afficher la progression du téléchargement car c'est la partie de l'INTERFACE utilisateur
Il y a une réponse ici stackoverflow.com/questions/399641/ajax-page-download-progress mais une meilleure discussion ici stackoverflow.com/questions/76976/...

OriginalL'auteur Ayan | 2016-09-20