Jquery Html5 ajax文件上传进度侦听器在Firefox上100%上传时未触发
我正在通过ajax上传文件,并在上传后处理图像。 当我尝试在firefox上通过ajax上传图像文件时,当上传百分比为100%但文件上传成功时,xhr进度事件不会触发我的进度函数 Google chrome在上传进度100%时触发,但firefox没有 Biriefly我的上传脚本:Jquery Html5 ajax文件上传进度侦听器在Firefox上100%上传时未触发,jquery,ajax-upload,Jquery,Ajax Upload,我正在通过ajax上传文件,并在上传后处理图像。 当我尝试在firefox上通过ajax上传图像文件时,当上传百分比为100%但文件上传成功时,xhr进度事件不会触发我的进度函数 Google chrome在上传进度100%时触发,但firefox没有 Biriefly我的上传脚本: $("#uploadbutton").click(function(){ var xhr=new XMLHttpRequest() ,fd=new FormData(); xhr.upload.
$("#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);
}
上载开始时,uploadProgress函数运行1次(多数情况下是在上载百分比为80%时),但在上载fnish时不会触发。除了当前的处理程序外,还要添加两个处理程序:(成功完成时激发),(最后激发,始终激发)
//零或一次
xhr.addEventListener(“加载”,上载成功,错误);
函数上载成功(事件){
log(“上传成功”);
}
//一次
xhr.addEventListener(“loadend”,uploadComplete,false);
函数上载完成(事件){
console.log(“全部完成”);
}
我正在将load listener添加到xhr中,但它从未触发listener函数。我在你说了之后尝试了“load”listener。在用法写入时,“load”listener触发“zero或once”,当load listener触发一次,当zero?触发“load”时,如果上载成功,则触发“loadend”。如果不成功,只触发“loadend”。我已经更新了答案。