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

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

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

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

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

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

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

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

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

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

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

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

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

Добавление своих suggestion в Drupal 9/10

Май 2, 2023 г.

Для добавления suggestions требуется использовать соответствующий группе шаблонов hook. Если название шаблона не известно, то его можно подсмотреть в режиме ...

Читать

Как добавить поле "количество" для кнопки add to cart в Drupal Commerce

Июль 13, 2023 г.

Кнопка выводится как элемент product.variations, а вот настройки полей, которые выводятся в этой сущности довольно глубоко зарыты. [crayon-69e1dcff64c9f616732523/] Поле "кол-во товара в корзине" не является частью сущности product variation, ...

Читать

Подключить скрипт / библиотеку в шаблоне twig

Ноябрь 5, 2023 г.

Подключение скрипта или стилей "по-месту", на мой взгляд, не плохая практика, т.к. соответствующие файлы не будут подключаться, если в них нет необходимости. От вас потребуется объявить нужный скрипт и/или стили как библиотеку. Это можно сделать ...

Читать

XML карта сайта для многоязычных проектов на Drupal

Апрель 16, 2024 г.

Для начала разберемся: что мы пытаемся построить. Ожидается, что у нас есть корневой файл sitemap.xml, который содержит список языковых xml карт. ...

Читать
 

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

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



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