2015-12-08 2 views
0

Я использую для загрузки файлов. Я хочу делать все, когда будет завершен процесс полной загрузки. Так что если я, например, перетаскиваю 4 файла (сразу), я хочу вызывать некоторый код, когда все файлы загружаются. Как я могу это сделать?jQuery FileUpload callback для завершенного процесса

Я пробовал играть с большим количеством обратных вызовов, таких как done, stop, progressall и т. Д., Но ничего похожего не было именно тем, что я ищу. Я должен быть уверен, что последний done был вызван до запуска моего кода.

Я пришел ближе всего к stop, но это, кажется, работает до done. Есть идеи?

ответ

1

ОБНОВЛЕНИЕ - Я понимаю в комментариях, что обратные вызовы, при которых запускается столько же времени, что и количество загружаемых файлов. Поэтому правильные ответы - использовать обратный вызов «всегда» и поставить счетчик. Счет будет увеличиваться каждый раз, когда файл загружается.

// Variables to put before the .fileUpload and to be init in "add" 
var nbElementsToUpload = 0; 
var nbElementsUploaded = 0; 


.bind('fileuploadalways', function (e, data) { 
    nbElementsUploaded++; 
    if(nbElementsToUpload === nbElementsUploaded){ 
     /* All elements uploaded */ 
    } 
}) 

Вы говорите о "последней" сделано. Что ты имеешь в виду? Вы вызываете 4 раза загрузку или один раз с 4 файлами?

У вас есть список функций обратных вызовов для плагина. https://github.com/blueimp/jQuery-File-Upload/wiki/Options#callback-options

Если вы хотите, чтобы захватить успешные запросы закачивать, а затем использовать «сделано» https://github.com/blueimp/jQuery-File-Upload/wiki/Options#done

Если вы хотите, чтобы захватить все завершенные операции один раз сделали (включая ошибки и прервать), а затем использовать обратный вызов «всегда». https://github.com/blueimp/jQuery-File-Upload/wiki/Options#always

Я сам использую этот плагин без проблем с «сделанными» и «неудачными». Пример:

}).on('fileuploaddone', function (e, data) { // code here }) 
    .on('fileuploadfail', function (e, data) { // code here }) 

Вы можете добавить console.log, чтобы правильно видеть, что происходит и в каком порядке.

С уважением,

+0

один раз с 4 файлов было то, что я имел в виду. Да, я тоже нашел этот список. Спасибо. – daker

+0

Так оно работает? :) Если да, то примите ответы, чтобы закрыть вопрос. –

+0

Как я писал в своем вопросе, я уже играл с большинством обратных вызовов. «Стоп» является лучшим до сих пор, и если я добавлю задержку, это может просто сделать трюк. Мне было интересно, есть ли там лучший способ ... – daker

Смежные вопросы