2017-10-17 6 views
0

알 수없는 오류로 업로드 나는이 문서 이어되지 않은 : 사용하지 않는 시스템의 다른 부분에 지금 https://symfony.com/doc/current/bundles/EasyAdminBundle/integration/vichuploaderbundle.html파일 "prueba.jpeg"이 때문에 내가 관리자에 올바르게 이미지를 업로드 설정 한

을 제대로

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.

를 EasyAdminBundle 나는 컨트롤러에서 I이이 이미지를 업로드해야

그리고 나는이 문제를 해결하는 방법을 모릅니다.

안부

답변

1

이 문제는 두 부분으로 나뉩니다. 이 폼을 변경하는 것이 필요하다 형태 우선

는 : 다발을 사용할 때

제 2 변화가 컨트롤러에
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() 
     )); 
    } 

안부

: 화상이 컨트롤러의 코드

기본적으로 업로드 할 때 사용