我正在使用 Valums Ajax Uploader 上传一批文件。我们最近将代码从单一上传类型更改为多重上传类型。这给我们的代码带来了问题。
正如你所看到的,当onComplete
事件触发后,我们重新加载页面以显示新上传的图像。但是,那onComplete
事件似乎在每个文件完成后触发,而不是在整个批次完成后触发。现在,这会导致问题,因为当第一个文件完成时,会触发页面重新加载尝试,并且上传者会弹出警报“如果您离开此页面,则剩余的上传将全部崩溃”或类似的内容。
我注意到onComplete
事件发送回已完成文件的基于 0 的 ID,但我不确定如何使用它来确定批处理何时完成。
我想我的问题是 A) 当所有文件完成时是否会触发不同的事件或 B) 如何确定用户选择了多少个文件,以便跟踪onComplete
事件有多少个文件已完成?
var uploader = new qq.FileUploader({
multiple: true,
element: document.getElementById('file-uploader'),
action: '/projectPhotoUpload.php',
allowedExtensions: ['jpg', 'png', 'gif'],
debug: true,
params: {id: i},
onComplete: function(id, fileName, responseJSON){
window.location = 'projects.php?all=true&tab=1&sel=' + currProject;
}
})
您可以添加一个计数器,该计数器在上传开始时递增,在完成时递减。仅当计数器为 0 时才重定向完成。
var running = 0;
var uploader = new qq.FileUploader({
multiple: true,
element: document.getElementById('file-uploader'),
action: '/projectPhotoUpload.php',
allowedExtensions: ['jpg', 'png', 'gif'],
debug: true,
params: {id: i},
onSubmit: function(id, fileName){
running++;
},
onComplete: function(id, fileName, responseJSON){
running--;
if(running==0){
window.location = 'projects.php?all=true&tab=1&sel=' + currProject;
}
}
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)