Обновление страницы после завершения загрузки в jQuery Multi file Uplaoder

Я использую jQuery Multifile uploader ( https://github.com/blueimp/jQuery-File-Upload ) с PHP

и я хочу обновить страницу загрузки после того, как все файлы будут загружены, я использую базовый плюс пользовательский интерфейс, пожалуйста, скажите, есть ли какой-либо простой способ его достижения

Используйте события done и fail, а также некоторые счетчики. Нашли эти события в документации по параметрам .

var fileCount = 0, fails = 0, successes = 0; $('#fileupload').fileupload({ url: 'server/php/' }).bind('fileuploaddone', function(e, data) { fileCount++; successes++; console.log('fileuploaddone'); if (fileCount === data.getNumberOfFiles()) { console.log('all done, successes: ' + successes + ', fails: ' + fails); // refresh page location.reload(); } }).bind('fileuploadfail', function(e, data) { fileCount++; fails++; console.log('fileuploadfail'); if (fileCount === data.getNumberOfFiles()) { console.log('all done, successes: ' + successes + ', fails: ' + fails); // refresh page location.reload(); } }); 

Вы можете использовать событие stop . Это эквивалентно глобальному событию ajaxStop (но только для запросов на загрузку файлов).

 stop: function(e){ location.reload(); } 

Я использовал код Райана, но возникла проблема. Значение data.getNumberOfFiles () уменьшалось по мере того, как файлы были загружены, в то время как fileCount увеличивался, поэтому мой сценарий загрузки был прерван в середине моей загрузки, где data.getNumberOfFiles () был равен fileCount.

Вот как я изменил скрипт Райана, и теперь он работает как шарм:

 var fileCount = 0, fails = 0, successes = 0; var _totalCountOfFilesToUpload = -1; $('#fileupload').bind('fileuploaddone', function (e, data) { if (_totalCountOfFilesToUpload < 0) { _totalCountOfFilesToUpload = data.getNumberOfFiles(); } fileCount++; successes++; if (fileCount === _totalCountOfFilesToUpload) { console.log('all done, successes: ' + successes + ', fails: ' + fails); // refresh page location.reload(); } }).bind('fileuploadfail', function(e, data) { fileCount++; fails++; if (fileCount === _totalCountOfFilesToUpload) { console.log('all done, successes: ' + successes + ', fails: ' + fails); // refresh page //location.reload(); } }); 

Надеюсь, это поможет другим людям! 🙂

Я использовал этот код и до сих пор хорошо работает.

 $('#fileupload').bind('fileuploadstop', function (e) { console.log('Uploads finished'); location.reload(); // refresh page });