Загрузка FAL только в случае успешной проверки

В прошлом я реализовывал загрузку внешнего интерфейса FAL различными способами, например, с использованием собственных эталонных моделей файлов и так далее. Я также попробовал загрузить пример расширения helhum https://github.com/helhum/upload_example. Но файлы будут сохранены также, если проверка не удалась. Так что у меня есть много мусорных файлов на веб-сервере. Теперь я ищу возможность реализовать загрузку FAL с основными функциями TYPO3. Или есть лучший способ обработать загрузку FAL без мусора?

1 ответ

Что касается изложенного варианта использования (загрузка файла завершилась успешно, в остальной части формы были ошибки проверки, пользовательский сеанс выхода), я бы предложил сохранить загруженные файлы во временную папку и переместить их в другое место, как только вся модель будет действительной и может быть сохранил с помощью хранилища.

Следуя примеру Хельмута, можно определить временную папку загрузки в логике контроллера

$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/'
    )
);

Все незавершенные попытки хранятся в отдельной папке, а затем могут быть удалены определенной запланированной задачей.

Другие вопросы по тегам