仅在验证成功时才上传FAL

时间:2016-09-14 20:54:44

标签: php typo3 extbase fal

过去,我已经以不同的方式实现了FAL前端上传,例如使用自己的文件引用模型等。我还尝试了helhum https://github.com/helhum/upload_example的上传示例扩展。但是如果验证失败,文件也会被保存。所以我在网络服务器上有很多垃圾文件。现在我寻找实现具有TYPO3核心功能的FAL上传的可能性。或者是否有最佳做法来处理没有数据垃圾的FAL上传?

1 个答案:

答案 0 :(得分:0)

关于概述的用例(文件上传成功,表单的其余部分有验证错误,用户退出会话)我建议将上传的文件存储到某个临时文件夹,并在整个模型后将它们移动到另一个位置是有效的,可以使用存储库保存。

关注Helmut's example,可以在控制器逻辑中定义临时上传文件夹

$uploadConfiguration = [
    UploadedFileReferenceConverter::CONFIGURATION_UPLOAD_FOLDER
        => '1:/temporary-uploads/',
];
$this->arguments[$argumentName]
    ->getPropertyMappingConfiguration();
    ->forProperty('image')
    ->setTypeConverterOptions(
        UploadedFileReferenceConverter::class,
        $uploadConfiguration
    );

然后在特定的控制器操作中将文件移动到真实文件夹

$model->getImage()->getOriginalResource()->moveTo(
    ResourceFactory::getInstance()->retrieveFileOrFolderObject(
        '1:/valid-uploads/'
    )
);

所有未完成的尝试都存储在专用文件夹中,然后可以通过某些计划任务进行清除。