TCA definition

This chapter explains how to create a field that makes it possible to create relations to files.

Changed in version 13.0

The TCA field type File can be used to provide a field in which files can be referenced and/or uploaded:

EXT:my_extension/Configuration/TCA/my_table.php
<?php

return [
    'ctrl' => [
        // ...
    ],
    'columns' => [
        'my_media_file' => [
            'label' => 'My image',
            'config' => [
                'type' => 'file',
                'allowed' => 'common-media-types',
            ],
        ],
        // ...
    ],
    // ...
];
Copied!

The property appearance can be used to specify, if a file upload button and file by URL button (Vimeo, Youtube) should be displayed.

Example:

EXT:my_extension/Configuration/TCA/Overrides/my_table.php
<?php

$GLOBALS['TCA']['my_table']['columns']['my_media_file']['config']['appearance'] = [
    'fileUploadAllowed' => false,
    'fileByUrlAllowed' => false,
];
Copied!

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'
        ],
    ],
],
Copied!