2017-10-17 64 views
0

我已經建立了在管理正確上傳圖片,我跟着這個文檔:在不使用該系統的另一部分https://symfony.com/doc/current/bundles/EasyAdminBundle/integration/vichuploaderbundle.html文件「prueba.jpeg」沒有上傳由於未知錯誤

現在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.

introducir la descripción de la imagen aquí

我不知道如何解決這個問題,有什麼想法?

關於

回答

1

這是解決方案,問題分兩部分。

首先,在有必要改變形式本形式:

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

第二個變化是在所述控制器,使用束時,它不再需要使用移動,也就是隻

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

問候

:當圖像本身上載

這是控制器的代碼中使用