Javascript 完成所有上载后的FineUploader客户端事件

Javascript 完成所有上载后的FineUploader客户端事件,javascript,fine-uploader,Javascript,Fine Uploader,我实现了FineUploader,我想在上传所有文件后将我的客户端脚本连接到一个事件。可能吗 我的实现如下。我只是想知道这是不是正确的方向 function init() { var uploader = new qq.FineUploader({ element: document.getElementById('button-selectfiles'), request: { endpoint: '/Up/UploadF

我实现了FineUploader,我想在上传所有文件后将我的客户端脚本连接到一个事件。可能吗

我的实现如下。我只是想知道这是不是正确的方向

    function init() {
    var uploader = new qq.FineUploader({
        element: document.getElementById('button-selectfiles'),
        request: {
            endpoint: '/Up/UploadFile'
        },

        callbacks: {
            onStatusChange: onFileUploadStatusChange
        }
    });
};

var uploads = 0;
function onFileUploadStatusChange(id, oldStatus, newStatus) {
    console.log(newStatus);

    if (newStatus === 'submitting') {
        uploads++;
    }

    if (newStatus === 'upload successful' || newStatus === 'upload failed') {
        uploads--;
    }

    if (uploads === 0) {

        console.log('done');
    }
}

onFileUploadStatusChange
函数无法检查取消的文件

验证是否已上载所有文件的方法是通过API方法:
getInProgress
getUploads
。如果我们有0个正在进行的上载,0个失败的上载,那么我们可以安全地假设所有文件都已上载。如果在任何上载失败时仍希望继续,则可能需要删除对上载失败的检查。我们检查在
onStatusChange
onComplete
回调期间是否满足这些条件。
onStatusChange
事件只应检查文件是否已取消,因为这可能意味着所有其他文件都已完成,因此可以完成自定义操作

注意:我已经将我的答案改编为非jqueryfine上传程序

函数init(){
var上传器;
函数检查_done(){
//当所有上载完成时提醒用户。
//不过,您可能希望执行不同的操作。
如果(ALUPLOADSCOMPLETED()==真){
window.alert(“所有上传的文件”);
} 
}
函数已完成(){
//当且仅当Fine Uploader的所有上载都处于
//完成此函数将触发提供的回调。
//如果有0个上载正在进行。。。
if(uploader.getInProgress()==0){
var failedUploads=uploader.getUploads({status:qq.status.UPLOAD\u FAILED});
//……没有一个失败
if(failedUploads.length==0){
//他们都完成了。
返回true;
}
}        
返回false;
}
uploader=新qq.FineUploader({
元素:document.getElementById('button-selectfiles'),
请求:{
端点:'/Up/UploadFile'
},
回调:{
onStatusChange:函数(id、oldStatus、newStatus){
//这将检查是否有已取消的文件
//将等同于“完成”所有上载。
如果(newStatus==qq.status.CANCELLED){
检查_done();
}     
},
onComplete:检查完成
}
});
};

onComplete
-用于单个上载文件,如果使用多个文件上载,只需使用:


这是非常口头的,我希望这是开箱即用的,但非常感谢。这无疑是更好、更健壮的:)从那时起,API就不断发展,现在@denala的答案是正确的解决方案。
callbacks: {
    onAllComplete: function() {
        alert('done')
    }
}