Drag&Drop загрузка файлов на MooTools

Если честно, то реализация загрузки файлов в браузерах сосет плохая. Т.е. она просто работает и только.

Хуже того, на разных платформах она и выглядит по-разному. Еще добавим тот факт, что многие пользователи привыкли перетаскивать файлы, если хотят их куда-нибудь скинуть, и эта фича мало реализована или не интуитивно понятна.

К счастью, разработчик MooTools Arian Stolwijk создал набор классов для реализации Drag&Drop загрузки файлов в браузере.

Давайте посмотрим, как это работает.

Пример

HTML

Разметка HTML точно такая же, как и при обычной для загрузки файлов в браузере. Присутствуют элементы FORM и INPUT с типом file:

Эта настройка будет работать даже тогда, когда у пользователя будет отключен JavaScript.

CSS

«Drop-зона» и «progress bar» области могут быть оформлены в любом стиле, какой вы пожелаете.
А CSS код для примера выглядит следующим образом:

Совет: при оформлении «drop-зоны» подскажите пользователю для чего она нужна, чтобы не было вопросов.

MooTools JavaScript

Arian предоставил 3 JavaScript класса для заливки файлов:

  • Form.Upload: Основной рабочий класс, определяющий возможности браузера по заливке файлов и реализующий эти возможности.
  • Form.MultiFileInput: Этот класс работает со списком файлов для загрузки.
  • Request.File: Работает с объектом FormData, отправляет файлы и возвращает отчеты о ходе работ.

Еще один ресурс iFrameFormRequest может быть включен в том случае, если пользователь использует старый браузер.

А теперь можно заняться и Drag&Drop загрузчиком файлов:

Начнем с создания экземпляра Form.Upload, передавая ему INPUT и опции класса. Самая важная опция — onComplete. Так как она возвращает уведомление, когда файлы загружены.

Если желаете настроить загрузку по своему вкусу, например, уведомления или область прогресса, то можно обращаться неспосредственно к паре Form.MultipleFileInput и Request.File:

Это решение хорошо подходит для подробных прогресс-баров.

Вот и все!


Оставить комментарий