YUI Uploader - Как узнать, когда все файлы были загружены?
Я использую YUI 2 Uploader для загрузки некоторых файлов. Мои пользователи будут загружать более одного файла, поэтому я хочу использовать "очередь файлов" YUI Uploader. Это все работает успешно. Я отключаю загрузчик, когда файлы загружаются, поэтому люди не могут добавлять новые файлы в очередь, как только они начинают загружать файлы.
Я хочу сделать что-то (в JavaScript), когда все файлы были загружены. YUI Uploader имеет сигналы, когда определенные файлы загружаются, но не когда все файлы в очереди были загружены. Есть ли какой-нибудь способ определить, когда все файлы были загружены?
2 ответа
Сохраните объект (или массив) файлов и в обработчике uploadComplete удалите файл, который только что закончился. Если их не осталось, вызовите функцию завершения загрузки.
Пример реализации здесь, http://tivac.com/upload/upload.js него есть некоторые ошибки, но он решает эту конкретную проблему.
Создайте обработчик события для события uploadcomplete. Ознакомьтесь с документацией по загрузке yui: http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html
http://developer.yahoo.com/yui/examples/uploader/uploader-advanced-queue.html
function onUploadComplete(event) {
rowNum = fileIdHash[event["id"]];
prog = Math.round(100*(event["bytesLoaded"]/event["bytesTotal"]));
progbar = "<div style='height:5px;width:100px;background-color:#CCC;'><div style='height:5px;background-color:#F00;width:100px;'></div></div>";
singleSelectDataTable.updateRow(rowNum, {name: dataArr[rowNum]["name"], size: dataArr[rowNum]["size"], progress: progbar});
}