我正在使用 ajax 进行文件上传。文件上传后,php 应该检查它(mime、大小、病毒(clamscan)等等)——对于较大的文件,这需要几秒钟。当文件上传时,一个 HTML5<progress>
正在填充,当文件准备好并且 PHP 开始检查时,进度应该切换到不确定。我想到了这样做的方法(两者都不起作用):
检查 upload.onload 事件
xhr.upload.addEventListener("load", function (e) {
$("#uploadprogress").attr("value", false);
$("#uploadprogress").attr("max", false);
$("#progress").text("Checking file...");
});
这不起作用,因为onload
-event 在请求准备好时触发,而不是在上传准备好时触发。
检查上传进度百分比是否 = 100%
xhr.upload.addEventListener("progress", function (e) {
if (e.lengthComputable && e) {
p = (e.loaded / e.total);
if (p==1) {
$("#uploadprogress").attr("value", false);
$("#uploadprogress").attr("max", false);
$("#progress").text("Checking file...");
} else {
var percent = Math.ceil(p * 1000) / 10;
$("#uploadprogress").val(e.loaded);
$("#uploadprogress").attr("max", e.total);
$("#progress").text("Uploading... " + percent + "%");
}
}
}
});
这不起作用,因为上传百分比有时会停止在大约。97%,尽管上传完成并且 PHP 开始处理文件
还有另一种可能性检查吗?