2017-10-23 10 views
0

내가 사용하고 있습니다 심포니 2.5 & PHP는 5.3 (기존 서버)Symfony2 입력 파일

난 그냥 (C : // 한마리/이름)과 같은 자신의 경로 이름을 표시하기 위해 내 양식에 입력 파일을 추가 할

/** 
* @ORM\Column(type="string", nullable=true) 
* 
*/ 
private $brochure = null; 

public function getBrochure() 
{ 
    return $this->brochure; 
} 

public function setBrochure($brochure) 
{ 
    $this->brochure = $brochure; 

    return $this; 
} 

을 내 AdvertType.php의 :

나는 그렇게 내 수업 Advert.php에 속성을 추가 한

  ->add('brochure', 'file', array(
      'required' => false,)) 

하지만 난 그것처럼 나에게 나쁜 경로를 반환하기 때문에 난 내 addAction에서 뭔가 빠진 것 같아 : {{ advert.brochure }}

public function addAction(Request $request) 
{ 
    $advert = new Advert(); 
    $form = $this->createForm(new AdvertType(), $advert); 
    $usr = $this->get('security.context')->getToken()->getUser(); 

    if ($form->handleRequest($request)->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $advert->setAuthor($usr->getUsername()); 
     $advert->setDate(new \DateTime); 
     $em->persist($advert); 
     $em->flush(); 
     $request->getSession()->getFlashBag()->add('info', 'Annonce bien enregistrée.'); 

     // On redirige vers la page de visualisation de l'annonce nouvellement créée/ 
     return $this->redirect($this->generateUrl('info_view', array('id' => $advert->getId()))); 
    } 

    return $this->render('SocietyPerfclientBundle:Default:add.html.twig', array(
     'form' => $form->createView(), 
    )); 
} 
를 표시 할 때 : (//filename.pdf C) (/ tmp를/phpYAVwMQ) 대신

도와주세요 :)

답변

1

당신은 로컬 컴퓨터의 전체 경로를 얻을 수

$advert->setBrochure($form->get('brochure')->getData()->getClientOriginalName()); 
+0

덕분에 많은 @ 루왁스, 너 최고야! <3 –

0

Symfony '파일'입력 유형은 파일 업로드 용입니다. 웹 서버에서 파일이있는 위치를 알려주는 경로입니다.

Documentation (사용하지 않는 Symfony v2.5를 사용할 경우) 원본 파일 이름을 포함하여 업로드 된 파일에 대한 정보를 사용할 수있는 예가 나와 있습니다.

프로젝트를 적어도 Long-Term-Support 버전 2.7 이상으로 업데이트하는 것은 작업 목록의 초기 단계에서부터 3.3+, 2.8 및 3.0을 거쳐야합니다. 당신의 $advert->setDate 줄 끝이 줄을 추가
보안상의 이유로 : ("\ 한마리 C"), 바로 파일 이름 :