Як завантажити декілька файлів одночасно?


22

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

Відповіді:


27

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

Для завантаження декількох файлів врахуйте наступне:

  • завантаження (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, тому що я читав, що використовувати їх - це краща практика, ніж просто перевірка розширень файлів.
palbakulich

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

1
Будь-який з перерахованих вище модулів міг би інтегруватися з MimeDetect і обробляти це для вас.
tim.plunkett

Якщо ви готові розширити clientide_validation, щоб використовувати mimedetect, будь ласка, опублікуйте цей код десь і дозвольте нам додати функцію для загального загального користування.
Capi Etheriel

5

Ми мали велику удачу з Plupload . Він перегинається назад, щоб досягти сумісності між браузерами, використовуючи Silverlight, Flash, HTML5 та повертаючись до класичних віджетів HTML4 "select file", залежно від можливостей браузера.

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

Нам вдалося ввімкнути його внутрішні події, щоб обробити досить трохи після обробки, і перевірка наявності MIME-типів / відхилення помилок перевірки назад, ймовірно, може бути здійснена без зайвого розмивання.


1
Коли-небудь використовували версію D6 Plupload?
doublejosh

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

4

Ось мій вікі порівняння в групі подібних модульних оглядів. http://groups.drupal.org/node/155764

Тут викидається вміст, як зараз ...

Масовий завантажувач Aurigma для CCK (6.x-2.0) Модуль завантажувача Aurigma для модуля Imagefield інтегрує комерційний завантажувач зображень Aurigma з Drupal. Кілька зображень завантажуються однією партією в декілька полів зображень.

Зображення FUpload (6.x-3.0-rc2) Зображення 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 for Imagefield (6.x-1.x-dev) Чи хотіли ви коли-небудь завантажувати групу зображень одразу на поле зображення? Модуль jUpload для Imagefield (jifupload) інтегрує аплет JUpload Java з модулем ImageField для CCK. Кілька зображень завантажуються однією партією в набір полів зображень для кількох значень.

Інший підхід, однаковий результат ...

Підтримка zip ImageField (6.x-1.0-beta2) Це допоміжний модуль для ImageField. Завантажуючи декілька зображень для полів зображень із багатозначними значеннями, цей модуль додає можливість завантажувати декілька зображень у zip-файли, а не окремо.

Імпорт Imagefield (5.x-1.5, 6.x-1.10) Імпорт Imagefield дозволяє користувачам з належними дозволами імпортувати велику кількість зображень у тип вмісту CCK, який містить поле файлів або поле зображення. Модуль може захоплювати заголовки та описи за допомогою EXIF ​​або IPTC. Примітка. Щоб використовувати цей модуль, ви повинні мати можливість завантажувати зображення на ваш сервер через FTP, SCP або інші методи.




0

Завантажити HTML5 http://drupal.org/sandbox/z7/1348240

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

Ще не пробували, але код чіткий і компактний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.