Typo3v11 使用自定义扩展(扩展生成器)从前端上传文件

问题描述 投票:0回答:1

我使用extensionBuilder创建了一个自定义扩展,并有一个带有文件属性的模式,我可以使用后端的任何文件创建一个新记录,但我也需要在前端添加相同的功能,但找不到解决方案

我尝试简单地将文件标签放入表单中

<f:form.upload name="file" property="file" />

但出现此错误

Exception while property mapping at property path "file": The identity property "Screenshot from 2024-01-05 14-44-55.png" is no UID.

这是我控制器中的 createAction

public function createAction(\..\..\Domain\Model\Announcements $newAnnouncements) {
    $this->announcementsRepository->add($newAnnouncements);
    $this->redirect('list');
}

如果需要的话,这是我的tca

'file' => [
        'exclude' => true,
        'label' => 'LLL:EXT:../Resources/Private/Language/locallang_db.xlf:tx_.._domain_model_announcements.file',
        'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
            'file',
            [
                'appearance' => [
                    'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:media.addFileReference'
                ],
                'overrideChildTca' => [
                    'types' => [
                        '0' => [
                            'showitem' => '
                            --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                            --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
                            'showitem' => '
                            --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                            --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
                            'showitem' => '
                            --palette--;;imageoverlayPalette,
                            --palette--;;filePalette',
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
                            'showitem' => '
                            --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                            --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
                            'showitem' => '
                            --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                            --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
                            'showitem' => '
                            --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                            --palette--;;filePalette'
                        ]
                    ],
                ],
                'foreign_match_fields' => [
                    'fieldname' => 'file',
                    'tablenames' => 'tx_**_domain_model_announcements',
                    'table_local' => 'sys_file',
                ],
                'maxitems' => 1
            ]
        ),
        
    ],
typo3 extbase typo3-11.x extension-builder3
1个回答
0
投票

也许 TYPO3 文档中的这篇文章会对您有所帮助。

确认您的控制器操作包括文件上传验证。您可能需要调整 createAction 方法才能正确处理文件上传。

© www.soinside.com 2019 - 2024. All rights reserved.