2014-04-14 100 views
0

我使用最新的Symfony2版本构建应用程序。我需要在用户上传后调整图像大小 - 这发生在TestController::uploadAction()Symfony2 - 如何使用EventListener调度图像大小调整

现在我得到了一个EventListener将是最好的方式来做到这一点的信息,因为在kernel.terminate我可以在用户得到回应后做到这一点。

以下几个问题:

  • 我如何上传的图片的数据从控制器到事件监听?
  • 如果TestController - uploadAction正在运行且表单已获取数据,如何让侦听器仅运行/交互?

THX

+0

“最好的方式来做到这一点,因为在Kernel.terminate我可以在用户得到响应后做到这一点”---它不是。谁告诉你的人是错的。 – zerkms

+0

嗯,k - 谢谢 - 是在Symfony IRC频道...哪里可以做到 - 你是什么意思? – nPoday

+0

这取决于任务。在一种情况下,您将使用某个队列管理器,并由侦听队列的工作人员调整其大小。 – zerkms

回答

1

那么首先你要指派事件:如果您有任何acme_image_upload听众则关联方法将事件作为参数调用

$this->container->get('event_listener')->dispatch('acme_image_upload', new MyUploadEvent($imageData, $correlation)); 

您可以从访问ContainerEventDispatcher的控制器发送事件。

,处理上传多个上下文捆绑的一个很好的例子是这样的: https://packagist.org/packages/oneup/uploader-bundle

它利用事件来处理不同的情况下,以及支持一些最流行的客户端的“块”上传。