由于未知错误,文件 "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()
        ));
  }

此致