29
ноября
2007

Массовая загрузка файлов

Загрузка файлов — достаточно типовая и несложная задача в реализации веб-приложений. Несложная — с точки зрения разработчика, т.к. самое очевидное (и поэтому самое массовое) ее решение сводится к написанию обработчика для HTML формы с одним или несколькими элементами <input type=”file”>. В итоге для пользователя возникает необходимость открывать диалог выбора файлов столько раз, сколько файлов нужно загрузить, что, мягко говоря, неудобно, когда этих файлов больше одного. Кроме того, стандартное решение содержит в себе еще один недочет, проявляющий себя при большом объеме загружаемых данных. Процесс загрузки практически никак не отражается стандартными средствами интерфейсов большинства браузеров, не смотря на то, что он может затянуться на десятки секунд, а то и минуты. Сообщение в статусной строке типа «Sending request to http://blah-blah-blah.com» неприметно и малоинформативно, т.к. никак не иллюстрирует динамику загрузки.

Многие веб-сервисы предоставляют специальные утилиты для массовой загрузки, которые частично решают проблему. Особенно это распространено на фотохостингах, где хорошими примером может стать Picasa для Picasa Web Albums. Тем не менее, такой подход не всегда пригоден, т.к. существует множество причин, которые могут помешать пользователю пользоваться подобными инструментами. Например, отстутствие технической возможности из-за ограниченных прав, нежелание захламлять компьютер, нехватка времени или банальная лень (99% случаев).

Некоторое время назад я искал готовое решение для организации массовой загрузки фотографий на веб-сервер. В тот раз ничего подходящего обнаружено не было, и пришлось писать своё. В тогдашней реализации использовалось десктопное приложение: это было работающее, но, как показала практика, идеологически не слишком хорошее решение. Нарушалась концепция тонкого клиента веб-приложения, т.к. помимо браузера требовалась дополнительная программа со всеми вытекающими последствиями.

А сегодня совершенно случайно я наткнулся именно на то, чего раньше не хватало. Это инструмент для массовой загрузки файлов на сервер, который для своей работы не требует ничего кроме браузера с установленным Flash. FancyUpload основан на JavaScript-фреймворке MooTools и, как обещают разработчики, дружит с Internet Explorer 6+, Opera 9, Firefox 1.5+ и Safari 2+.

fancyupload.png

Скрипт позволяет за один раз выбирать множество файлов и умеет отображать состояние загрузки для каждого из них в виде прогрессбаров. При желании, загрузку можно прервать на любом этапе. Что еще интересно, у FancyUpload нет никакой зависимости от серверной стороны, т.е. обработчик загруженных файлов можно писать на чем угодно.

Написать комментарий

Можно использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .