Как загрузить несколько файлов одновременно?
Нам нужно загрузить несколько файлов разных типов, есть ли модуль, который будет проверять допустимые типы mime и загружать только допустимые файлы (на основе настроек сайта, например: png, doc, jpg, txt)?
6 answers
Clientside_validation (drupal-6 и drupal-7) выполняет некоторые дополнительные проверки на стороне клиента, включая проверку загруженных расширений файлов (но не типов MIME). (И, как упоминал @tim.plunkett в комментариях, mimedetect полезен для проверки типа MIME на стороне сервера, но для проверки файл должен быть загружен на сервер.)
Для загрузки нескольких файлов рассмотрите следующее:
- swfupload (друпал-6; Вспышка)
- plupload (drupal-6 и drupal-7; Поддерживаются Flash и несколько других технологий; новые/разрабатываются)
Для загрузки нескольких изображений дополнительно рассмотрите следующее:
- image_fupload (drupal-6; использует swfupload выше)
- jifupload (drupal-5 и drupal-6; бесплатно; использует Java-апплет)
- aurigma (drupal-6; покупка программного обеспечения/подписка на услуги требуется)
Нам очень повезло с загрузкой . Он перегибается назад, чтобы обеспечить совместимость между браузерами, используя Silverlight, Flash, HTML5 и возвращаясь к классическим виджетам HTML4 "выбор файла" в зависимости от возможностей браузера.
Модуль интеграции Drupal немного грубоват, но мы успешно использовали его в ряде крупных проектов для заполнения полей изображений. В Drupal 7, я полагаю, они вытащили большую часть пользовательского интерфейса и превратили его в чистый API модуль, который может использоваться такими инструментами, как Мультимедиа, просто для обработки загрузки. Если вы хотите сделать что-то особенно необычное, вам, вероятно, придется написать немного пользовательского кода, чтобы определить, где отображается виджет загрузки, но он очень надежный.
Нам удалось подключиться к его внутренним событиям, чтобы обработать довольно много постобработки, и проверка на наличие типов/откат ошибок проверки, вероятно, может быть выполнена без особых усилий.
Вот моя вики-страница сравнения в группе обзора аналогичных модулей. http://groups.drupal.org/node/155764
Демпинг содержимого здесь, как сейчас...
Массовый загрузчик Aurigma для CCK (6.x-2.0) Загрузчик Aurigma для модуля Imagefield объединяет коммерческий загрузчик изображений Aurigma с Drupal. Несколько изображений загружаются в одном пакете в поле с несколькими изображениями.
Загрузка изображения (6.x-3.0-rc2) Загрузка изображений (Multiupload), который является дополнением к модулю image и CCK imagefield, дает возможность каждому пользователю, которому разрешено загружать изображения с помощью модуля image или модуля imagefield, загружать несколько изображений одним простым щелчком мыши. Все выбранные изображения загружаются через флэш-модуль (swfupload) и автоматически обрабатываются.
Интеграция с загрузкой (6.x-1.x-dev, 7.x-1.0-beta3) Обеспечивает интеграцию между виджетом Plupload для загрузки нескольких файлов и Drupal. Plupload - это лицензированный GPL инструмент для загрузки нескольких файлов, который может отображать виджеты во Flash, Gears, HTML 5, Silverlight, BrowserPlus и HTML4 в зависимости от возможностей клиентского компьютера.
Загрузка SWFUpload (6.x-2.0-beta8) Модуль SWFUpload для Drupal предоставляет виджет для поля файлов CCK и использует библиотеку SWFUpload для одновременной загрузки нескольких файлов.
Загрузка для поля изображения (6.x-1.x-dev) Вы когда-нибудь хотели, чтобы вы могли загружать группа изображений сразу в поле изображения? Модуль Jupload для Imagefield (jifupload) объединяет Java-апплет Jupload с модулем ImageField для CCK. Несколько изображений загружаются в одном пакете в поле изображения, заданное для нескольких значений.
Другой подход, тот же результат...
Поддержка zip-файлов полей изображений (6.x-1.0-beta2) Это вспомогательный модуль для ImageField. При загрузке нескольких изображений для полей изображений с несколькими значениями этот модуль добавляет возможность загружать несколько изображений в zip-файлах, а не по отдельности.
Импорт поля изображения (5.x-1.5, 6.x-1.10) Импорт полей изображений позволяет пользователям с соответствующими разрешениями импортировать большое количество изображений в тип контента CCK, содержащий поле файла или поле изображения. Модуль может захватывать заголовки и описания с помощью EXIF или IPTC. Примечание: Чтобы использовать этот модуль, вы должны иметь возможность загружать изображения на свой сервер через FTP, SCP или другими способами.
Еще один вариант для изображений, который не очень хорошо поддерживается, но работает, - это поддержка zip-файлов ImageField
Если вы можете поместить эти файлы в zip-файл и хотите/должны использовать основной модуль загрузки, вы можете попробовать Несколько загрузок в одиночку (Drupal 6.x).
Загрузка HTML5 http://drupal.org/sandbox/z7/1348240
Эти модули следует рассматривать как упрощенное решение для пакетной загрузки изображений (и других файлов) для Drupal 7 в современных (Совместимый с HTML5) браузер, не более того.
Еще не пробовал, но код понятен и компактен.