Загрузка Файлов С Использованием Html5 File Api, С Предпочтениями И Танцорами



Предисловие

Загрузка файлов с использованием html5 File API, с предпочтениями и танцорами

Загрузка файлов всегда занимала особое место в веб-разработке.

О сложности укладки уже сказано немало.

; об этом можно прочитать, например, перейдя по ссылкам один раз , два , три , четыре , пять , шесть .

Но сам процесс скачивания файлов нетривиален; есть много разных способов – и ни одного идеального.

О реализации на нашем проекте я уже писал Файлы@Mail.Ru серебристыйлегкий погрузчик Полгода назад .

В то время мы поддерживали iframe, flash, silverlight и обычную загрузку файлов.

Но прогресс не стоит на месте, и теперь последние бета-версии всеми любимых браузеров полностью поддерживают html5 FileAPI (справедливости ради стоит отметить, что некоторая поддержка, как обычно, уникальна, но об этом ниже).

Пока писалась эта статья, Chrome 9 был объявлен стабильным и вынужденным 75% установок версии 8 уже обновлены.

.

Итак, отмечаем поддержку File API как первого стабильного браузера, ура! Мы думали, что неиспользование такой технологии будет преступлением против пользователей.

Мы подумали об этом и добавили загрузку html5 в дополнение к уже существующим опциям.

В результате наши пользователи получили множество преимуществ: — прозрачная перезагрузка после потери соединения (и даже перезапуска браузера!); — очередь загрузки; — индикатор выполнения (пользователи MacOS и Safari наконец-то смогут видеть прогресс без каких-либо посторонних плагинов), возможность удалять файлы из очереди, если передумаете.

Используя File API, мы можем программно, из кода JavaScript: 1. получить список выбранных в диалоге файлов, их размеры и mime-типы (на что, кстати, не стоит рассчитывать, поскольку браузеры не распознают некоторые популярные типы файлов по расширению).

2. получить из файла необходимый диапазон байт, не загружая все содержимое файла в память (в отличие от Flash и Firefox 3 - см.

примечание 1).

3. загрузить на сервер как весь файл, так и его часть.

4. Загружайте файлы одним перетаскиванием.

5. загрузить несколько файлов одновременно (параллельно).

Те.

нам не нужны никакие плагины для работы с файлами, и это определенно очень здорово!



Басня

Сама загрузка файлов реализована в File API всего в несколько строк, но мы добавили несколько приятных функций (очередь загрузки, дополнительная загрузка при потере соединения) и код стал немного сложнее.

Код загрузчика в проекте Файлы@Mail.Ru доступны и не запутаны и могут быть изучать , но он привязан к проекту и его особенностям, поэтому мы рассмотрим этот механизм загрузки в чистом виде на примере проекта легкий загрузчик .

Итак, начнем.

Мы присоединяем к входу обработчик onchange.

   

oself.file_elm.onchange = function() {

Теги: #Nginx #mail.ru #html5 #file api #uploader
Вместе с данным постом часто просматривают: