Создайте новый модуль в вашей установке Drupal. Вы можете назвать его как угодно.
Создайте новый роут для своей страницы администрирования, определив его в файле mymodule.routing.yml. Например:
mymodule.admin_form: path: '/admin/config/mymodule/form' defaults: _form: '\Drupal\mymodule\Form\AdminForm' _title: 'MyModule Admin Form' requirements: _permission: 'administer site configuration'
Этот роут указывает, что форма администрирования будет доступна по урлу /admin/config/mymodule/form и что она будет использовать класс формы AdminForm, определенный в вашем модуле.
Создайте новый класс формы в своем модуле, который будет обрабатывать форму загрузки файла. Например:
namespace Drupal\mymodule\Form; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; class AdminForm extends FormBase { public function getFormId() { return 'mymodule_admin_form'; } $form['file'] = [ '#type' => 'managed_file', '#title' => $this->t('Upload file'), '#description' => $this->t('Upload a file to be processed.'), '#upload_location' => 'public://mymodule/files', ]; $form['submit'] = [ '#type' => 'submit', '#value' => $this->t('Save'), ]; return $form; } $file = $form_state->getValue('file'); // Process the uploaded file here. } }
Этот класс формы определяет элемент формы управляемого файла, который позволит пользователям загружать файл для обработки. Метод submitForm() будет вызываться при отправке формы, и вы сможете там обработать загруженный файл.
Проверьте свою новую страницу, перейдя по /admin/config/mymodule/form . Вы должны увидеть форму загрузки файла и иметь возможность загрузить файл и отправить форму.
Вот и все! Теперь у вас есть административная страница Drupal 9 с формой загрузки файлов.