我正在使用此代码,我希望在队列中的所有图像上传后调用函数。
$(function(){ $('#swfupload-control').swfupload({ upload_url: "upload.php", file_post_name: 'uploadfile', file_size_limit : "20000", file_types : "*.jpg;*.png;*.gif", file_types_description : "Image files", file_upload_limit :500, flash_url : "js/swfupload/swfupload.swf", button_image_url : 'js/swfupload/wdp_buttons_upload_114x29.png', button_width : 114, button_height : 29, button_placeholder : $('#button')[0], debug: false }) .bind('fileQueued', function(event, file){ var listitem=''+ 'File: '+file.name+' ('+Math.round(file.size/20000)+' KB) '+ ''+ 'Pending'+ ' '+ ''; $('#log').append(listitem); $('li#'+file.id+' .cancel').bind('click', function(){ var swfu = $.swfupload.getInstance('#swfupload-control'); swfu.cancelUpload(file.id); $('li#'+file.id).slideUp('fast'); }); // start the upload since it's queued $(this).swfupload('startUpload'); }) .bind('fileQueueError', function(event, file, errorCode, message){ alert('Size of the file '+file.name+' is greater than limit'); }) .bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){ $('#queuestatus').text('Files Selected: '+numFilesSelected+' / Queued Files: '+numFilesQueued); }) .bind('uploadStart', function(event, file){ $('#log li#'+file.id).find('p.status').text('Uploading...'); $('#log li#'+file.id).find('span.progressvalue').text('0%'); $('#log li#'+file.id).find('span.cancel').hide(); }) .bind('uploadProgress', function(event, file, bytesLoaded){ //Show Progress var percentage=Math.round((bytesLoaded/file.size)*100); $('#log li#'+file.id).find('div.progress').css('width', percentage+'%'); $('#log li#'+file.id).find('span.progressvalue').text(percentage+'%'); }) .bind('uploadSuccess', function(event, file, serverData){ var item=$('#log li#'+file.id); item.find('div.progress').css('width', '100%'); item.find('span.progressvalue').text('100%'); var pathtofile='/'+file.name+'" target="_blank" >view »'; item.addClass('success').find('p.status').html(''); }) .bind('uploadComplete', function(event, file){ // upload has completed, try the next one in the queue $(this).swfupload('startUpload'); }) });
答案 0 :(得分:0)
我建议使用像uplodify
这样的插件它在上传一个或多个图像后提供回调功能。您可以在他们的文档中找到相关的示例。
答案 1 :(得分:0)
获取您上传的文件的数量,并在uploadComplete事件处理程序中跟踪它被调用的次数,并检查它是否等于计数。
答案 2 :(得分:0)
添加处理程序:
upload_complete_handler : uploadComplete
并在函数末尾的handlers.js中添加您喜欢的代码:
function uploadComplete(file) {
try {
/* I want the next upload to continue automatically so I'll call startUpload here */
if (this.getStats().files_queued === 0) {
document.getElementById(this.customSettings.cancelButtonId).disabled = true;
} else {
this.startUpload();
}
} catch (ex) {
this.debug(ex);
}
// do what you want HERE!
}