2017-02-25 43 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),因为“'我需要一些代码'”在这里是Off-Topic !然而,你的问题也太广泛了,有一百万种方法来实现这一点。开始寻找[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 } 

有关实体监听更多细节:[?我可以问StackOverflow上什么话题] http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#entity-listeners-class