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});
    }
Другие вопросы по тегам