2017-02-25 4 views
0

업로드시 이미지의 크기를 조정해야하며 주위를 둘러 볼 수 없습니다. 번들을 사용하고 있지 않으며 symfony 문서의 UploadFile 예제를 따랐습니다.Symfony 3 : 업로드시 이미지 크기 조정

이미지가 올바른 폴더에 복사되지만 어떻게 든 크기를 조정해야합니다. 가능한 경우 번들을 추가하지 않고이를 수행 할 수있는 방법이 필요합니다.

class ImgUpload 
{ 
    private $targetDir; 

    public function __construct($targetDir) 
    { 
     $this->targetDir = $targetDir; 
    } 

    public function upload(UploadedFile $file) 
    { 
     $file_name = $file->getClientOriginalName(); 

     empty($file_name) ? $file_name = md5(uniqid()).'.'.$file->guessExtension() : $file_name = $file->getClientOriginalName(); 

     $file->move($this->targetDir, $file_name); 

     return $file_name; 
    } 
} 

그리고 이것은 내 컨트롤러에 있습니다 :

이 (단지 문서에 같은) 서비스

/** 
* @Route("admin/import_images", name="import_images") 
*/ 
public function importImgAction(Request $request) 
{ 
    $form = $this->createForm(ImportImgType::class, NULL); 

    $form->handleRequest($request); 

    if ($form->isSubmitted() && $form->isValid()) { 

     $paths = $form->get('path')->getData(); 

     foreach($paths as $path) { 
      $this->get('app.img_upload')->upload($path); 

     } 

     return $this->redirect($this->generateUrl('product_list')); 
    } 

    return $this->render('AppBundle:productmanager:import_images.html.twig', array(
     'form' => $form->createView(), 
    )); 
} 

사전에 감사합니다!

+1

마리우스, 이전 질문을보고 난 강력하게 당신이 읽을 것을 권장 것입니다 (http://stackoverflow.com/help/on-topic)과 [어떻게 좋은 질문을합니까?] ("http://stackoverflow.com/help/how-to-ask") ! 그러나 귀하의 질문에 너무 광범위하고 이것을 구현하는 방법은 백만 가지가 있습니다. [Liip Imagine Bundle] (https://github.com/liip/LiipImagineBundle)을 찾으십시오. –

+0

안녕하세요, 귀하의 제안에 감사드립니다! 내가 묻는 방법을 읽었고 모든 질문에 나쁜 리뷰를 계속해서 읽었 기 때문에 좌절감을 느꼈습니다. 왜 그런지 모르겠습니다. 나는 더 나은 단어를 선택해야한다고 생각합니다 :). – Marius

답변

0

ImportImgType을 사용하여 업데이트 한 엔티티의 지속성 및 업데이트를 수신하는 엔티티 수신기를 사용하고 새 이미지가있는 경우 크기를 조정합니다. 엔티티 리스너에 대한 자세한 내용은

app.entity_listener.resize_img: 
    class: AppBundle\ResizeImgListener 
    tags: 
    - { name: doctrine.orm.entity_listener, entity: AppBundle\Entity\ImportImg, event: postUpdate } 
    - { name: doctrine.orm.entity_listener, entity: AppBundle\Entity\ImportImg, event: postPersist } 

[? I에 유래에 요청할 수 있습니다 어떤 주제] http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#entity-listeners-class