上传Drupal 8后如何获取文件名?

上传Drupal 8后如何获取文件名?,drupal,drupal-8,Drupal,Drupal 8,我正在构建一个表单,用户可以在其中上传文件。因为我使用的是Drupal,所以我使用的是托管的_文件。文件正在上载,但我似乎无法从表单中获取文件名。。。这是我的密码 构建形式: $form['formfile'] = array( '#type' => 'managed_file', '#name' => 'formfile', '#title' => t('File'), '#upload_vali

我正在构建一个表单,用户可以在其中上传文件。因为我使用的是Drupal,所以我使用的是托管的_文件。文件正在上载,但我似乎无法从表单中获取文件名。。。这是我的密码

构建形式:

        $form['formfile'] = array(
        '#type' => 'managed_file',
        '#name' => 'formfile',
        '#title' => t('File'),
        '#upload_validators' => $validators,
        '#upload_location' => 'public://trainingrequests/',
    );
提交

drupal_set_message($form_state->getValue('formfile'));

我已经尝试了所有方法。

首先需要获取文件实体的实体ID,然后加载实体:

$formfile = $form_state->getValue('formfile');
if ($formfile) {
  $oNewFile = File::load(reset($formfile));
  $oNewFile->setPermanent();
  drupal_set_message('Filename: ' . $oNewFile->getFilename());
}

您可以在文件系统中浏览文件实体的源代码:core/modules/File/src/entity/File.php

您首先需要获取文件实体的实体ID,然后加载实体:

$formfile = $form_state->getValue('formfile');
if ($formfile) {
  $oNewFile = File::load(reset($formfile));
  $oNewFile->setPermanent();
  drupal_set_message('Filename: ' . $oNewFile->getFilename());
}

您可以浏览文件系统中文件实体的源代码:core/modules/File/src/entity/File.php

来自表单api参考“…表单的验证和提交处理程序接收$Form_state['values']格式的文件对象ID,该ID表示{File_managed}表中新文件的ID。”。现在您必须从DB
\Drupal::entityTypeManager()->getStorage('file')->load($file\u id)加载文件以及如何从表单api引用“…表单的验证和提交处理程序接收$Form_state['values']中的文件对象id,该id表示{file_managed}表中新文件的id。”。现在您必须从DB
\Drupal::entityTypeManager()->getStorage('file')->load($file\u id)加载文件如何获取$file\u id?