更改文件上传的存储文件夹

Change storage folder on file upload

我的表单包含

这样的字段

'name, firstname, street, zip, city and image'。

图片是上传的 场地。一切正常,我可以将图像上传为 Filereferrence。但是图片每次都上传到"fileadmin/"。我想上传图片到 "/uploads/<extensionname>""fileadmin/user_uploads/<extensionname>".

实现上传和移动文件的部分是这样的。

            $storageRepository = $this->objectManager->get('TYPO3\CMS\Core\Resource\StorageRepository');

            $storage = $storageRepository->findByUid('1');

            $fileData = array();
            $fileData['name'] = $_FILES['tx_oaevents_eventslisting']['name']['image'][0];
            $fileData['type'] = $_FILES['tx_oaevents_eventslisting']['type']['image'][0];
            $fileData['tmp_name'] = $_FILES['tx_oaevents_eventslisting']['tmp_name']['image'][0];
            $fileData['size'] = $_FILES['tx_oaevents_eventslisting']['size']['image'][0];


            $newFileObject = $storage->addFile(
                $fileData['tmp_name'], $storage->getRootLevelFolder(), $fileData['name']
            );

这一行定义存储文件夹形式的数据库:

$storage = $storageRepository->findByUid('1');

默认为文件管理员。但是 change/modify 这个存储文件夹目的地的最佳方式是什么?

如果您想指定上传的目标文件夹,我建议您看一下 FAL File Upload example from Helmut Hummel. For his example, there is also a blogpost,它描述了文件上传的工作原理以及为什么您应该在 TYPO3 中使用 TypeConverter 进行 FAL 文件上传6.2+

我已经多次实施该解决方案并且效果很好,因为它涵盖了很多您在实施文件上传时可能 运行 遇到的场景(例如验证、错误处理、文件存在时的文件替换) )