This may happen if you are reading your file as a binary string and forming the multipart/ form-data request manually.
You need to try and use xhr.send(File) and work around xhr progress event, which is fired when all list items had been already created.
Example
The following is our upload function −
function display(url, files) { var myForm = new FormData(); for (var j = 0, file; file = files[j]; ++j) { myForm.append(file.name, file); } var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.onload = function(e) { ... }; xhr.send(formData); }