-1

有没有一种简单的方法来处理用户个人资料图像?

我尝试使用VichUploaderBundle没有成功。

4

1 回答 1

0

使用唯一名称将它们保存在您的文件夹中,并将名称存储在数据库中。

要上传图像,您可以在表单中使用 FileType 字段,记录在此处。我记得您可以使用 ImageType 进行表单验证,这里有一些代码将文件保存在文件夹中并将文件名保存在数据库中:

    $user = new User();
    $form = $this->createForm(UserForm::class, $user);   

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $img = $user->getPhoto();

        $fileName = md5(uniqid()).'.'.$img->guessExtension();
        $user->setPhoto($fileName);
        // Move the file to the directory where brochures are stored
        $img->move(
            $this->getParameter('user_image_directory'),
            $fileName
        );
        $em = $this->getDoctrine()->getManager();
        $em->persist($user);
        $em->flush();
   }

当你想显示 img 时,你以类似的方式在 twig 中显示它,首先你使用 $user->getPhoto() 读取文件名并将其发送到你的模板,当我调用 user.getPhoto() 时我遇到了一些错误从模板中,也许只是我:

img src="{{ asset('media/users/') }}{{ filename }}"></div>
于 2017-04-12T18:46:55.147 回答