Сохранение файла, полученного через форму в Drupal

Вы создали форму с полем типа file, и хотите сохранять файл как сущность друпала при отправке данных формы.

Обычно объявления форм в Drupal 8+ размещаются в виде расширений класса FormBase в каталоге модуля /scr/Form/*.

Этот пример содержит две проблемы.

Разрешаем нужные расширения

Первая связана с тем, что я намеренно разрешил загрузку только csv файлов, которых нет в «стандартном» списке разрешенных для функции file_save_upload.

Поэтому требуется задать нужный нам валидатор.

Временные файлы

Вторая проблема более серьёзная, она заключается в том, что файл сохраняется как временный. И через какое то время (типично — 8 часов) он может быть удален сборщиком мусора в друпал.

Чтобы избежать этого есть как минимум два пути:

Первый — это использование созданного файла в какой то другой сущности, через регистрацию связи сервисом ‘file.usage’.

Второй путь — это напрямую установить флаг permanent для только созданной сущности.

Мало букафф? Читайте есчо !

Работа с config split модулем в Drupal

Март 16, 2024 г.

Задача модуля - дать возможность разделить конфигурации сайта для разных системных окружений. На локальном сервере вы можете использовать такие модули ...

Читать

Добавляем свой фильтр в TWIG на Drupal

Июнь 1, 2023 г.

В TWIG уже много разных встроенных фильтров, Drupal их перечень только расширяет. Но наше счастье было бы не полным, если бы мы не могли добавить свои фильтры. В Drupal это делается через сервис twig.extension. Для начала надо сформировать описатель, ...

Читать

Форма поиска товаров на Drupal

Май 11, 2023 г.

Здесь подробно рассмотрим небольшую задачу для сайта под управлением CMS Drupal. Требуется выводить поисковую форму для товаров в виде блока. Форма ...

Читать

Drupal deployment

Май 18, 2023 г.

Шпаргалка по настройке и проведению деплоймента для Drupal (начиная с 8й версии). Деплоймент выполняется с использованием git, drush, composer и configuration management. На сервере должны выполняться команды в следующей последовательности: ...

Читать
 

Комментарии к «Сохранение файла, полученного через форму в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: