由于未知错误,文件 "prueba.jpeg" 未上传
The file "prueba.jpeg" was not uploaded due to an unknown error
我已经在管理员中正确设置了上传图片,并且我遵循了这个文档:https://symfony.com/doc/current/bundles/EasyAdminBundle/integration/vichuploaderbundle.html
现在在系统的另一部分不使用 EasyAdminBundle 我需要上传图像,在控制器中我有这个:
public function crearequiposAction(Request $request) {
$equipo = new Equipos();
$form = $this->createForm(EquiposType::class, $equipo);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$fecha=new \DateTime('now');
$ruta = $equipo->getImageFile();
$nombrep = $equipo->getLogo();
$nombre = $nombrep.'.'.$ruta->guessExtension();
$fileDir = $this->container->getParameter('kernel.root_dir').'/../web/uploads/images/equipos';
$ruta->move(
$fileDir,
$nombre
);
$equipo->setLogo($nombre);
$equipo->setUpdatedAt($fecha);
$em->persist($equipo);
$flush = $em->flush();
if ($flush == null) {
$status = "Documento registrado correctamente";
$this->session->getFlashBag()->add("status", $status);
return $this->redirectToRoute("listado-torneos");
} else {
$status = "No se registro equipo";
}
} else {
$status = "No se registro equipo";
}
$this->session->getFlashBag()->add("status", $status);
}
return $this->render('AppBundle:Equipos:informacionequipos.html.twig', array(
"form" => $form->createView()
));
}
图片上传正确,但显示此错误:
The file "prueba.jpeg" was not uploaded due to an unknown error.
而且我不知道如何解决这个问题,有什么想法吗?
问候
这是解决方案,问题分为两部分。
首先在表格中需要将表格更改为:
use Vich\UploaderBundle\Form\Type\VichFileType;
use Symfony\Component\HttpFoundation\File\File;
$builder
->add('nombre')
->add('grupo')
->add('numero')
->add('imageFile', VichFileType::class)
->add('torneos')
->add('save', SubmitType::class, array(
"attr" => array(
"class" => "save"
)));
第二个变化是在控制器中,当使用 bundle 时不再需要使用 move,只有在本地上传图像时才会使用 move
这是控制器的代码:
public function crearequiposAction(Request $request) {
$equipo = new Equipos();
$form = $this->createForm(EquiposType::class, $equipo);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($equipo);
$flush = $em->flush();
if ($flush == null) {
$status = "Equipo registrado correctamente";
$this->session->getFlashBag()->add("status", $status);
return $this->redirectToRoute("listado-torneos");
} else {
$status = "No se registro equipo";
}
} else {
$status = "No se registro equipo";
}
$this->session->getFlashBag()->add("status", $status);
}
return $this->render('AppBundle:Equipos:informacionequipos.html.twig', array(
"form" => $form->createView()
));
}
此致
我已经在管理员中正确设置了上传图片,并且我遵循了这个文档:https://symfony.com/doc/current/bundles/EasyAdminBundle/integration/vichuploaderbundle.html
现在在系统的另一部分不使用 EasyAdminBundle 我需要上传图像,在控制器中我有这个:
public function crearequiposAction(Request $request) {
$equipo = new Equipos();
$form = $this->createForm(EquiposType::class, $equipo);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$fecha=new \DateTime('now');
$ruta = $equipo->getImageFile();
$nombrep = $equipo->getLogo();
$nombre = $nombrep.'.'.$ruta->guessExtension();
$fileDir = $this->container->getParameter('kernel.root_dir').'/../web/uploads/images/equipos';
$ruta->move(
$fileDir,
$nombre
);
$equipo->setLogo($nombre);
$equipo->setUpdatedAt($fecha);
$em->persist($equipo);
$flush = $em->flush();
if ($flush == null) {
$status = "Documento registrado correctamente";
$this->session->getFlashBag()->add("status", $status);
return $this->redirectToRoute("listado-torneos");
} else {
$status = "No se registro equipo";
}
} else {
$status = "No se registro equipo";
}
$this->session->getFlashBag()->add("status", $status);
}
return $this->render('AppBundle:Equipos:informacionequipos.html.twig', array(
"form" => $form->createView()
));
}
图片上传正确,但显示此错误:
The file "prueba.jpeg" was not uploaded due to an unknown error.
而且我不知道如何解决这个问题,有什么想法吗?
问候
这是解决方案,问题分为两部分。
首先在表格中需要将表格更改为:
use Vich\UploaderBundle\Form\Type\VichFileType;
use Symfony\Component\HttpFoundation\File\File;
$builder
->add('nombre')
->add('grupo')
->add('numero')
->add('imageFile', VichFileType::class)
->add('torneos')
->add('save', SubmitType::class, array(
"attr" => array(
"class" => "save"
)));
第二个变化是在控制器中,当使用 bundle 时不再需要使用 move,只有在本地上传图像时才会使用 move
这是控制器的代码:
public function crearequiposAction(Request $request) {
$equipo = new Equipos();
$form = $this->createForm(EquiposType::class, $equipo);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($equipo);
$flush = $em->flush();
if ($flush == null) {
$status = "Equipo registrado correctamente";
$this->session->getFlashBag()->add("status", $status);
return $this->redirectToRoute("listado-torneos");
} else {
$status = "No se registro equipo";
}
} else {
$status = "No se registro equipo";
}
$this->session->getFlashBag()->add("status", $status);
}
return $this->render('AppBundle:Equipos:informacionequipos.html.twig', array(
"form" => $form->createView()
));
}
此致