我不熟悉 BuddyPress,但所有上传处理程序(包括 android 概述的 HTML5 XHR 处理程序)都有一个可以绑定到的文件进度挂钩点。
我使用过uploadify、uploadifive 和swfupload,它们都可以与相同的进度函数处理程序进行交互,以获得相同的进度条结果。
// SWFUpload
$elem.bind('uploadProgress', function(event, file, bytesLoaded) { fnProgress(file, bytesLoaded); })
// Uploadify
$elem.uploadify({ onUploadProgress: function (file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) { fnProgress(file, bytesUploaded); });
// Uploadfive
$elem.uploadifive({ onProgress: function(file, e) { fn.onProgress(file, e.loaded); });
Uploadifive 是一个基于 HTML5 的上传器,只需绑定到 XHR 'progress' 事件,因此所有这些属性都可用于任何 HTML5 上传器。
至于实际的进度条码..
HTML:
<div class='progressWrapper' style='float: left; width: 100%'>
<div class='progress' style='float: left; width: 0%; color: red'></div>
<div class='progressText' style='float: left;></div>
</div>
JS:
var fnProgress = function(file, bytes) {
var percentage = (bytesLoaded / file.size) * 100;
// Update DOM
$('.progress').css({ 'width': percentage + '%' });
$('.progressText').html(Math.round(percentage + "%");
}