Javascript 完成所有上载后的FineUploader客户端事件
我实现了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
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')
}
}