有没有一种简单的方法来处理用户个人资料图像?
我尝试使用VichUploaderBundle没有成功。
使用唯一名称将它们保存在您的文件夹中,并将名称存储在数据库中。
要上传图像,您可以在表单中使用 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>