XMLHttpRequest.upload.addEventListener("progress".

XMLHttpRequest.upload.addEventListener("progress"... not working

本文关键字:quot progress upload addEventListener XMLHttpRequest      更新时间:2023-09-26

我尝试通过调用XMLHttpRequest.upload来填充上传栏。addEventListener("progress", progressHandler, false);。显然,我的函数progressHandler根本没有被调用。我也不知道为什么。

其他一切工作正常,例如,在文件完全上传后调用completeHandler。我的测试文件的上传花费了大约。15秒,所以我希望 progreshandler 被调用。

也许有人能帮帮我?
    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";
    }

您正在同步上传文件,尝试将open()调用更改为

 ajax.open("POST", "mod/intern/uploader_upload_done.php", true);