advupload - новый модуль для Drupal для загрузки больших файлов

Всплыла новая проблема - нужно загружать видео и адиозаписи на сайт на обычном. Сам тип материала для видео леко делается готовыми  модулями CCK + fielfield + swftools(последний можно заменить на любой плеер для flv), наличием конвертера в flv у клиента(нет цели да и ресурсов конвертировать видео на сервере а и в рамках одного вебсервера - если сайт большой - это накладно - надо отдельную машинку для такого заводить, ну и для наших случаев - для частного блога - просто не нужно).

Итак, проблема. Есть возможность создавать поля материалов типа fiefield, но есть ограничения размера загружаемого файла накладываемые на PHP(да, можно больше памяти на скрипт выделить, но я полагаю, это не есть правильно). Значит надо загружать файл по кускам. Значит задачу чисто через HTML+Javascript в общем случае не решить. Нужен flash(ну или иные плагины) чтобы грузить файл по кускам.

Начав искать модули на Drupal.org, я пришел к выводу, что большинство модулей для массовой загрузки файлов либо живут в состоянии "постоянная бета", либо почти ничего не содержат, либо делают загрузку файлов "одной кнопкой", но при этом ни один не поддерживает chunked uploading - покусочную загрузку файла. Есть правда модуль plupload, который живет тоже в состоянии вечно не готового модуля. Кстати он умеет chunked uploading но при этом в нем практически нет проверок на ошибки, нет настроек для нескольких типов материала сразу, нет показа результатов. Ну в общем, проще рассказать чего в нем нет, чем нормально применять :).

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

Было решено искать библиотеку для Javascript, которая все что надо умеет. Последний модуль, как оказалось, ее и использовал - найдя plupload.com, я собственно на тот модуль и вышел :)

Эта библиотека позволяет загрузку файлов с испольщованием Flash, Silverligh, Gears. Html 5 ну и еще нескольких вариантов. Нам оказались нужны первые три - поскольку только с ними можно нормлаьно грузить файлы кусочками + передавать информацию обработчику загрузки файла в POST запросе(а не в GET).

С использованием этой библиотеки и был написан модуль для загрузки больших файлов на сайт.

Что сделано. Для каждого типа материала на странице настройки модуля можно выбрать поле, для которого нужна такая загрузка файлов. После чего появится отдельная страница с формой загрузки, где добавляются файлы для загрузки и потом можно написать название заголовков материала. После загрузки файлов(каждогого файла) создается соответсвущий материал, содержащий этот файл. Модуль позволяет загружать файлы до 2 гигабайт(ограничение связано с особенностями функции PHP filesize() на 32битных операционных системах).

В дальнейших планах сделать несколько форм загрузки файлов, сделать интеграцию с nodereference, open groups - для того чтобы можно загружать пачками галереи изображений, как на известных сервисах и портировать все на D7.

Взять модуль его можно здесь: http://drupal.org/project/advupload

Приветсвуется тестирование, сообщения об ошибках и прочий спам, также помощь по вопросам программирования под Drupal 7 - в плане правильного программного сохранения файловых полей материала и самого материала на этой версии Drupal, а также пожертвования на кошельки системы Webmoney Z257403855887, R317189108083 :-)