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

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

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

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

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

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

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

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

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

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

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

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

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

Получение и рендеринг списка дочерних терминов в Drupal

Апрель 27, 2023 г.

Небольшой примера кода для работы с таксономией в Drupal 10. Мы запросим дерево дочерних терминов и произведем их рендеринг. Для начала загрузим какой-либо термин [crayon-69a7cab47180b401478337/] Следующий шаг - получение дочерних элементов ...

Читать

Реализация формы поиска товаров

Май 11, 2023 г.

См. основной материал для введения. Форма в нашем случае не требует отправки/проверки данных, и реализует только два метода - getFormId и buildForm. Хотя форма и не содержит кнопки submit, но все равно будет реагировать на отправку данных, поэтому ...

Читать

Генерация JWT токена в Drupal

Июль 30, 2023 г.

Модуль jwt реализует REST аутентификацию, настройку ключа и многое другое. Небольшой спиппет как сгенерировать и отправить jwt с собсвенной нагрузкой. Передадим токен, в котором полезной нагрузкой будет ID пользователя. А время жизни токена - 1 ...

Читать

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

Июнь 1, 2023 г.

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

Читать
 

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

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



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