Symfony 4.2上传的文件并重命名

时间:2019-04-16 15:37:02

标签: php symfony symfony4

我正在构建的这个Symfony网络api需要您的帮助。长话短说,它在Symfony之上使用API​​平台。根据文档,我添加了发布文件的功能,但是我遇到的问题是冲突。我需要一种重命名文件的好方法。这些文件用作UploadedFile类。

那是我对移动功能的了解,我已经尝试过了,但是在我当前的设置中,这不是一个好选择。

控制器代码示例:

HW6

图像实体:

        public function __invoke(Request $request): Images
        {
            $uploadedFile = $request->files->get('file');
            if (!$uploadedFile) {
                throw new BadRequestHttpException('"file" is required');
            }
            $mediaObject = new Images();
            $mediaObject->file = $uploadedFile;
            ...
            $this->validate($mediaObject, $request);

            $em = $this->managerRegistry->getManager();
            $em->persist($mediaObject);
            $em->flush();

            return $mediaObject;
        }

所以问题是,有一种好方法可以重命名发布到Symfony应用程序中的文件,而无需使用move功能?

2 个答案:

答案 0 :(得分:1)

找到了适合我的解决方案: https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/namers.md#file-namer

VichUp具有一项内置服务,可自动重命名文件以避免冲突以及目录规划。

希望它可以帮助其他人。

答案 1 :(得分:0)

您可以尝试使用rename()函数,但是通常使用mov()。

致谢!