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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在上传Drupal 8后获取文件名?相关的知识,希望对你有一定的参考价值。

我正在构建一个表单,用户可以上传文件。由于我使用的是Drupal,我使用的是managed_file。该文件正在上传,但我似乎无法从表单中获取文件名...这是我的代码

Buildform:

        $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'));

我真的尝试了一切。

答案

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

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

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

以上是关于如何在上传Drupal 8后获取文件名?的主要内容,如果未能解决你的问题,请参考以下文章

通过 vue js 将电影图像发布/上传到 drupal 8

如何在 Drupal 8 中使用 Twig 获取 field_image 路径

Javascript代码片段在drupal中不起作用

Drupal创建自定义表单,上传文件代码

Drupal 8 自定义模块未显示在块布局中

视觉工作室代码中的 Drupal 8