【发布时间】:2013-03-03 08:28:29
【问题描述】:
我正在使用 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 开始处理文件
还有其他可能检查这个吗?
【问题讨论】:
标签: javascript ajax upload xmlhttprequest