4

I am uploading files over ajax and processing images after upload. When I tried upload image files over ajax on firefox , xhr progress event not triggering my progress function when upload percent do 100% but file was uploading successfully .

Google chrome triggering when upload progress 100% but firefox doesn't.

Biriefly my upload script :

$("#uploadbutton").click(function(){
   var xhr=new XMLHttpRequest()
   ,fd=new FormData();

   xhr.upload.addEventListener("loadstart", uploadStart, false);
   xhr.upload.addEventListener("progress", uploadProgress, false);
   xhr.addEventListener("error", uploadFailed, false);

   xhr.open("POST", mainurl+"ajaxupload.php");

   $.each($("#upload_input").files,function(i,file){
     fd.append("files_"+i,file);
   });    

  xhr.send(fd);

});

function uploadProgress(event){
   var percentComplete = Math.round(event.loaded * 100 / event.total);
   console.log("pecent ",percentComplete);
}

When upload start , uploadProgress function runnig 1 times ( mostly when upload percent 80% ), but not triggering when upload fnish .

1 Answer 1

2

In addition to your current handlers, add two more: load (fires if successful completion), loadend (fires last, always).

// zero or once
xhr.addEventListener("load", uploadSuccess, false);
function uploadSuccess(event) {
    console.log("Upload successful.");
}

// once
xhr.addEventListener("loadend", uploadComplete, false);
function uploadComplete(event) {
    console.log("All done.");
}
Sign up to request clarification or add additional context in comments.

3 Comments

I am adding load listener to the xhr but it is not triggering listener function never.
I tried the "load" listener after you say.At load usage writes "load" listener fires "zero or once", When load listener fires once,when zero ?
Fires "load" if upload was successful, then fires a "loadend". If not successful, just "loadend" is fired. I've updated the answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.