diff --git a/typo3/sysext/core/Classes/Resource/Hook/FileInfoHook.php b/typo3/sysext/backend/Classes/Form/Element/FileInfoElement.php
similarity index 64%
rename from typo3/sysext/core/Classes/Resource/Hook/FileInfoHook.php
rename to typo3/sysext/backend/Classes/Form/Element/FileInfoElement.php
index 4a10f68df307ea1cb03c42f15d5bedebbf7e0689..2a34f1a62263f52ead8d83b43ec863d4d908accd 100644
--- a/typo3/sysext/core/Classes/Resource/Hook/FileInfoHook.php
+++ b/typo3/sysext/backend/Classes/Form/Element/FileInfoElement.php
@@ -1,5 +1,6 @@
 <?php
-namespace TYPO3\CMS\Core\Resource\Hook;
+declare(strict_types=1);
+namespace TYPO3\CMS\Backend\Form\Element;
 
 /*
  * This file is part of the TYPO3 CMS project.
@@ -22,41 +23,35 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Lang\LanguageService;
 
 /**
- * Utility class to render TCEforms information about a sys_file record
+ * This renderType is used with type=user in FAL for table sys_file and
+ * sys_file_metadata, for field fileinfo and renders an informational
+ * element with image preview, filename, size and similar.
  */
-class FileInfoHook
+class FileInfoElement extends AbstractFormElement
 {
+
     /**
-     * User function for sys_file (element)
+     * Handler for single nodes
      *
-     * @param array $propertyArray the array with additional configuration options.
-     * @return string The HTML code for the TCEform field
+     * @return array As defined in initializeResultArray() of AbstractNode
      */
-    public function renderFileInfo(array $propertyArray)
+    public function render(): array
     {
-        $fileRecord = $propertyArray['row'];
-        $fileObject = null;
-        if ($fileRecord['uid'] > 0) {
-            $fileObject = ResourceFactory::getInstance()->getFileObject((int)$fileRecord['uid']);
+        $resultArray = $this->initializeResultArray();
+
+        $fileUid = 0;
+        if ($this->data['tableName'] === 'sys_file') {
+            $fileUid = (int)$this->data['databaseRow']['uid'];
+        } elseif ($this->data['tableName'] === 'sys_file_metadata') {
+            $fileUid = (int)$this->data['databaseRow']['file'][0];
         }
-        return $this->renderFileInformationContent($fileObject);
-    }
 
-    /**
-     * User function for sys_file_meta (element)
-     *
-     * @param array $propertyArray the array with additional configuration options.
-     * @return string The HTML code for the TCEform field
-     */
-    public function renderFileMetadataInfo(array $propertyArray)
-    {
-        $fileMetadataRecord = $propertyArray['row'];
         $fileObject = null;
-        if (!empty($fileMetadataRecord['file']) && $fileMetadataRecord['file'][0] > 0) {
-            $fileObject = ResourceFactory::getInstance()->getFileObject((int)$fileMetadataRecord['file'][0]);
+        if ($fileUid > 0) {
+            $fileObject = ResourceFactory::getInstance()->getFileObject($fileUid);
         }
-
-        return $this->renderFileInformationContent($fileObject);
+        $resultArray['html'] = $this->renderFileInformationContent($fileObject);
+        return $resultArray;
     }
 
     /**
@@ -65,7 +60,7 @@ class FileInfoHook
      * @param File $file
      * @return string
      */
-    protected function renderFileInformationContent(File $file = null)
+    protected function renderFileInformationContent(File $file = null): string
     {
         /** @var LanguageService $lang */
         $lang = $GLOBALS['LANG'];
@@ -81,9 +76,9 @@ class FileInfoHook
             }
             if ($previewImage) {
                 $content .= '<img src="' . htmlspecialchars($previewImage) . '" ' .
-                            'width="' . $processedFile->getProperty('width') . '" ' .
-                            'height="' . $processedFile->getProperty('height') . '" ' .
-                            'alt="" class="t3-tceforms-sysfile-imagepreview" />';
+                    'width="' . $processedFile->getProperty('width') . '" ' .
+                    'height="' . $processedFile->getProperty('height') . '" ' .
+                    'alt="" class="t3-tceforms-sysfile-imagepreview" />';
             }
             $content .= '<strong>' . htmlspecialchars($file->getName()) . '</strong>';
             $content .= ' (' . htmlspecialchars(GeneralUtility::formatSize($file->getSize())) . 'bytes)<br />';
diff --git a/typo3/sysext/backend/Classes/Form/NodeFactory.php b/typo3/sysext/backend/Classes/Form/NodeFactory.php
index 45237340e5f46c42f9b788d61dd64856911f6ede..9ba4098332dea0d97ea21da1f0ec05d9888eab94 100644
--- a/typo3/sysext/backend/Classes/Form/NodeFactory.php
+++ b/typo3/sysext/backend/Classes/Form/NodeFactory.php
@@ -90,6 +90,7 @@ class NodeFactory
         'textTable' => Element\TextTableElement::class,
         'unknown' => Element\UnknownElement::class,
         'user' => Element\UserElement::class,
+        'fileInfo' => Element\FileInfoElement::class,
 
         // Default classes to enrich single elements
         'fieldControl' => NodeExpansion\FieldControl::class,
diff --git a/typo3/sysext/core/Configuration/TCA/sys_file.php b/typo3/sysext/core/Configuration/TCA/sys_file.php
index 0549b8e27a0b76bd7f81e25f6435ef8f5f2b08d6..b92b097b526b5dace625a5d549dc3f5b8f65e9f4 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_file.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_file.php
@@ -30,7 +30,7 @@ return [
         'fileinfo' => [
             'config' => [
                 'type' => 'user',
-                'userFunc' => 'TYPO3\\CMS\\Core\\Resource\\Hook\\FileInfoHook->renderFileInfo'
+                'renderType' => 'fileInfo',
             ]
         ],
         'storage' => [
diff --git a/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php b/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php
index 69a51c18a952c688a71363791836aebcf3308b52..c98aa0b5306b61b1b231a5be4bb93b9ae060501c 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_file_metadata.php
@@ -78,7 +78,7 @@ return [
         'fileinfo' => [
             'config' => [
                 'type' => 'user',
-                'userFunc' => 'TYPO3\\CMS\\Core\\Resource\\Hook\\FileInfoHook->renderFileMetadataInfo'
+                'renderType' => 'fileInfo',
             ]
         ],
         'file' => [