Attention
TYPO3 v12 has reached end-of-life as of April 30th 2026 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here: TYPO3 ELTS.
TCA definition
This chapter explains how to create a field that makes it possible to create relations to files.
Changed in version 12.0
For TYPO3 v11 and below the API function
Extension was used to
create a TCA configuration suitable to handle files. This function has been
deprecated with the introduction of the new field type File.
See the Migration section on how to
adjust the configuration.
The TCA field type File can be used to provide a field in which files can be referenced and/or uploaded:
<?php
return [
'ctrl' => [
// ...
],
'columns' => [
'my_media_file' => [
'label' => 'My image',
'config' => [
'type' => 'file',
'allowed' => 'common-media-types',
],
],
// ...
],
// ...
];
On the database side, the corresponding field needs to store an integer, as is usual for relations field:
The property appearance can be used to specify, if a file upload button and file by URL button (Vimeo, Youtube) should be displayed.
Example:
<?php
$GLOBALS['TCA']['my_table']['columns']['my_media_file']['config']['appearance'] = [
'fileUploadAllowed' => false,
'fileByUrlAllowed' => false,
];
This will suppress two buttons for upload and external URL and only leave the button Create new relation.
Migration from
ExtensionManagementUtility::getFileFieldTCAConfig
// Before
'columns' => [
'image' => [
'label' => 'My image',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'maxitems' => 6,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
],
// After
'columns' => [
'image' => [
'label' => 'My image',
'config' => [
'type' => 'file',
'maxitems' => 6,
'allowed' => 'common-image-types'
],
],
],