在ajax调用中使用XMLHttpRequest.upload监听上传过程,progress事件,输出回调函数中的event事件
示例代码如下:
function uploadFile() { var data = new FormData(); data.append('file', $("#uploadvideo").prop("files")[0]); //file控件 $.ajax({ type: "post", url: "UploadVideo_Upload", data: data, //async: false,//同步上传 //cache: false,//上传文件无需缓存 processData: false, // 不处理数据 contentType: false, // 不设置内容类型 success: function (data) { if (data == "success") { $("#a-upload").remove(); $("#td_upload").html("上传成功,请等待审核。"); $("#td_error").html(""); } else { alert(data); } }, error: function (data) { alert('请求失败,请刷新页面重试。'); }, xhr: function () { var xhr = new XMLHttpRequest(); //使用XMLHttpRequest.upload监听上传过程,注册progress事件,打印回调函数中的event事件 xhr.upload.addEventListener('progress', function (e) { console.log(e); //loaded代表上传了多少 //total代表总数为多少 var progressRate = (e.loaded / e.total) * 100; //通过设置进度条的宽度达到效果 $("#span_upload").html("正在上传中,已完成 " + progressRate.toFixed(2) + "%"); }) return xhr; } }); }