Как загрузить несколько файлов одновременно?


22

Нам нужно загрузить несколько файлов разных типов, есть ли модуль, который будет проверять действительные типы MIME и загружать только действительные файлы (в зависимости от настроек сайта, например: png, doc, jpg, txt)?

Ответы:


27

clientide_validation (drupal-6 и drupal-7) выполняет некоторые дополнительные проверки на стороне клиента, включая проверки расширений загружаемых файлов (но не типов MIME). (И, как упоминалось в комментариях @ tim.plunkett, mimedetect полезен для проверки типа MIME на стороне сервера, но файл должен быть загружен на сервер для проверки.)

Для загрузки нескольких файлов учтите следующее:

  • swfupload (drupal-6; Flash)
  • plupload (drupal-6 и drupal-7; Flash и несколько других поддерживаемых технологий; новые / в разработке)

Для загрузки нескольких изображений дополнительно учтите следующее:

  • image_fupload (drupal-6; использует swfupload выше)
  • jifupload (drupal-5 и drupal-6; бесплатно; использует Java-апплет)
  • aurigma (drupal-6; требуется покупка программного обеспечения / подписка на сервис)

2
Я спросил о MIME-типах, потому что я читал, что их использование - это лучшая практика, чем просто проверка расширений файлов.
Палбакулич

@palhmbs - Вы правильно прочитали. Вы должны всегда проверять тип mime загруженных файлов.
Кристиан

1
Любой из вышеперечисленных модулей может интегрироваться с MimeDetect и обрабатывать это для вас.
tim.plunkett

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

5

Нам повезло с Plupload . Он наклоняется назад, чтобы обеспечить кросс-браузерную совместимость, используя Silverlight, Flash, HTML5 и возвращаясь к классическим виджетам HTML4 «Выбрать файл» в зависимости от возможностей браузера.

Модуль интеграции Drupal немного грубоват, но мы успешно использовали его в ряде крупных проектов для заполнения полей изображений. Я полагаю, что в Drupal 7 они извлекли большую часть пользовательского интерфейса и превратили его в чистый модуль API, который может использоваться такими инструментами, как Media, просто для обработки загрузки. Если вы хотите сделать что-то особенно интересное, вам, вероятно, придется написать немного пользовательского кода, чтобы обрабатывать, где отображается виджет загрузки, но он очень надежный.

Нам удалось подключиться к его внутренним событиям, чтобы обработать немало постобработки, и проверка на наличие MIMEtypes / откат ошибок валидации, вероятно, могла бы быть выполнена без особых усилий.


1
Вы когда-нибудь использовали версию Plupload для D6?
doublejosh

@ Eathon Есть ли у вас какие-либо идеи относительно автоматической загрузки в модуле plupload. Я получил идею из обсуждения drupal.org/node/1804382#comment-7810763 . Существует также решение stackoverflow.com/questions/8137229/… , но я не знаю, как интегрироваться с drupal из API
mohit_rocks

4

Вот мое вики для сравнения в группе «Подобный модуль». http://groups.drupal.org/node/155764

Сбрасывает контент здесь как сейчас ...

Aurigma Mass Uploader для CCK (6.x-2.0) Модуль Aurigma Uploader для Imagefield объединяет коммерческий Aurigma Image Uploader с Drupal. Несколько изображений загружаются в одном пакете в поле нескольких изображений.

Image FUpload (6.x-3.0-rc2) Image FUpload (Multiupload), который является дополнением к изображению и модулю поля изображения CCK, дает возможность каждому пользователю, которому разрешено загружать изображения с помощью модуля изображения или модуля поля изображения, загружать несколько изображения одним простым нажатием. Все выбранные изображения загружаются через флэш-модуль (swfupload) и автоматически обрабатываются.

Интеграция с Plupload (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 для одновременной загрузки нескольких файлов.

jUpload для Imagefield (6.x-1.x-dev) Вы когда-нибудь хотели, чтобы вы могли загрузить группу изображений сразу в поле изображения? Модуль jUpload for Imagefield (jifupload) интегрирует Java-апплет JUpload с модулем ImageField для CCK. Несколько изображений загружаются в одном пакете в поле изображения, заданное для нескольких значений.

Другой подход, тот же результат ...

Поддержка zip для ImageField (6.x-1.0-beta2) Это вспомогательный модуль для ImageField. При загрузке нескольких изображений для полей изображений с несколькими значениями этот модуль добавляет возможность загрузки нескольких изображений в виде zip-файлов, а не по отдельности.

Импорт поля изображения (5.x-1.5, 6.x-1.10) Импорт поля изображения позволяет пользователям с соответствующими разрешениями импортировать большое количество изображений в тип содержимого CCK, который содержит поле файла или поле изображения. Модуль может получать заголовки и описания, используя EXIF ​​или IPTC. Примечание: чтобы использовать этот модуль, вы должны иметь возможность загружать изображения на ваш сервер через FTP, SCP или другими способами.



2

Если вы можете поместить эти файлы в zip-файл и хотите / должны использовать основной модуль Upload, вы можете попробовать Multiple Upload Alone (Drupal 6.x).


0

HTML5 Upload http://drupal.org/sandbox/z7/1348240

Эти модули следует рассматривать как оптимизированное решение для пакетной загрузки изображений (и других файлов) для Drupal 7 в современном (совместимом с HTML5) браузере, и не более того.

Еще не пробовал, но код понятен и компактен.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.