Показать сообщение отдельно
  #10 (permalink)  
Старый 05.08.2013, 03:03
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Написал заготовку для загрузки файлов (html5, drag-n-drop, multimple)

Директивы:
- ngFileSelect - вешается на <input type="file" />
- ngFileDrop - вешается на DOM элемент, кот. будет ловить файлы (как правило, это весь документ)
- ngFileOver - вешается на элемент, кот. будет реагировать (добавляться класс), когда файлы находятся над drop элементом. По умолчанию добавляется класс "ng-file-over". Другой класс можно задать в параметре атрибута ng-file-over="className"

Сервисы:
- $fileStorage - файловое хранилище. Туда добавляются файлы, после того, как они были "сброшены и пойманы", либо выбраны в инпуте. Есть возможность фильтровать добавление в хранилище.
- $fileUploader - загрузчик файлов. Помещает файлы в очередь, после чего загружает их оттуда.
- $fileTransport - транспорт. Планирую xhr2 + iframe. На данный момент реализовано только первое.


$fileStorage
свойства:
- files - массив файлов
методы:
- add - добавить в хранилище
- remove - удалить по индексу
- removeAll - удалить все
коллбеки:
- filter: function( file ) { - вызывается до добавления файла в хранилище. true - добавить, false - нет
- onAfterAddingFiles - вызывается после добавления файлов в хранилище. На этом этапе можно читать файлы, делать превьюшки и т.п.


$fileUploader
свойства:
- url: общий для всех файлов. Можно индивидуализировать для каждого файла, после добавления файла в хранилище
- alias - псевдоним, под которым сервер увидит файл. Общий для всех файлов. Можно индивидуализировать для каждого файла, после добавления файла в хранилище
- queue - очередь файлов
методы:
- addToQueue - добавляет файлы в очередь загрузки
- removeFromQueue - удаляет файл из очереди по индексу
- clearQueue - очищает очередь
- uploadItem - загружает файл по индексу
- uploadAll - загружает все файлы в очереди
коллбеки:
- progress - индикация загрузки файла
- success - успешная загрузка
- error - ошибка при загрузке
- complete - загрузка завершена
Надо подумать над тем, что должно приходить в качестве параметров в эти функции. На данный момент только xhr.

В случае выбора >1 файла, файлы будут загружаться по очереди.

http://learn.javascript.ru/play/IhSxR

p.s.: кроме хрома нигде не проверял
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 05.08.2013 в 03:13.
Ответить с цитированием