XMLHttpRequest.upload.addEventListener("progress"... not working
10,188
You are uploading the file synchronously, try changing the open()
call to
ajax.open("POST", "mod/intern/uploader_upload_done.php", true);
Author by
Christian Graf
Updated on June 22, 2022Comments
-
Christian Graf almost 2 years
I try to populate an upload bar by calling XMLHttpRequest.upload.addEventListener("progress", progressHandler, false);. Apparently my function progressHandler is not called at all. I do not have a clue, why.
Everything else works fine, e.g. the call of completeHandler, after the file is completely uploaded. The upload of my testfile takes approx. 15 secs, so I would expect progressHandler to be called.
Maybe someone can help me?
var formdata = new FormData(); formdata.append("uploadfilename", file); formdata.append("inte", ticketid); formdata.append("username", userName); formdata.append("custname", custName); formdata.append("userlastname", userLastName); formdata.append("par", par); formdata.append("mod", mod); var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", progressHandler, false); ajax.addEventListener("load", completeHandler, false); ajax.addEventListener("error", errorHandler, false); ajax.addEventListener("abort", abortHandler, false); ajax.open("POST", "mod/intern/uploader_upload_done.php", false); ajax.send(formdata); var response = JSON.parse(ajax.responseText); // parsing response .... function progressHandler(event) { var percent = 100 *(event.loaded / event.total); _("fortschritt").value = Math.round(percent); _("fortschritt_txt").innerHTML = Math.round(percent)+"% done..."; } function completeHandler(event) { _("fortschritt_txt").innerHTML = event.target.responseText; _("fortschritt").value = 100; _("ticketid").value = ''; } function errorHandler(event) { _("fortschritt_txt").innerHTML = "Upload failed"; } function abortHandler(event) { _("fortschritt_txt").innerHTML = "Upload cancelled"; }
-
codebox over 8 yearsAre you sure that this is supported in the browser you are using?
-