2017-10-17 4 views
0

j'ai mis en place le téléchargement des images correctement dans l'admin et j'ai suivi cette documentation: https://symfony.com/doc/current/bundles/EasyAdminBundle/integration/vichuploaderbundle.htmlLe fichier « prueba.jpeg » n'a pas été téléchargé en raison d'une erreur inconnue

maintenant dans une autre partie du système qui n'utilise pas EasyAdminBundle-je besoin de télécharger des images, dans le contrôleur, j'ai ceci:

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() 
    )); 

} 

les ajouts d'images correctement mais il me montre cette erreur:

The file "prueba.jpeg" was not uploaded due to an unknown error.

introducir la descripción de la imagen aquí

Et je ne sais pas comment résoudre ce problème, des idées?

concernant

Répondre

1

C'est la solution, le problème était en deux parties.

d'abord sous la forme, il est nécessaire de changer la forme à ceci:

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" 
       ))); 

Le deuxième changement est dans le contrôleur, lors de l'utilisation du faisceau, il n'est plus nécessaire d'utiliser le mouvement, qui est seulement utilisé lorsque les images sont téléchargées nativement

Voici le code du contrôleur:

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() 
     )); 
    } 

Cordialement