2

我使用爲symfony1.2 2 OneUp包,方法的監聽器類是從來沒有叫symfony的2上傳一起來捆

//service.yml 
amd_picture.uploadListener: 
    class: Amd\PictureBundle\Services\UploadListener 
    arguments: ["@doctrine.orm.entity_manager"] 
    tag: 
     - {name: kernel.event_listener, event: oneup_uploader.post_chunk_upload, method: onUpload} 

監聽器類實現了onUpload方法和相應的事件,是它的分辯事件監聽???

class UploadListener { 

    private $doctrine; 

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

    public function onUpload(PostChunkUploadEvent $event) { 
     //source code 
    } 
} 

的srcipt前端的模板

<script> 
    YUI().use('uploader', function(Y) { 

    var uploader = new Y.Uploader(
      { 
       multipleFiles: true, 
       uploadURL: "{{ oneup_uploader_endpoint('gallery') }}", 
       width: "300px", 
       height: "60px" 

      }).render("#fileupload"); 
</script> 

我不覺得爲什麼onUpload方法不會被調用?

+0

有同樣的問題,在XML看起來雖然 – Nealv

回答

2

你在你使用的語句使用postPersitentEvent:

use Oneup\UploaderBundle\Event\PostPersistEvent; 
1

YUI3-Uploader無法文件分割成塊,因此OneupUploaderBundleYUI3Controller不支持它的。這意味着沒有post_chunk_upload將被調度並且您的EventListener從不被調用。

如果您想要在成功上傳文件後處理文件,請嘗試聽0123,,如bundles manual中所述。

//service.yml 
amd_picture.uploadListener: 
    class: Amd\PictureBundle\Services\UploadListener 
    arguments: ["@doctrine.orm.entity_manager"] 
    tag: 
     - {name: kernel.event_listener, event: oneup_uploader.post_persist, method:  onUpload} 

並確保將一個PostPersistEvent對象傳遞給偵聽器。

use Oneup\UploaderBundle\Event\PostPersistEvent; 

class UploadListener { 
    public function onUpload(PostPersistEvent $event) 
    { 
     //... 
    } 
} 
+0

工作,我已經取代了由PostPersistEvent的ChunkEvent(在我service.yml與使用語句控制器),但是當我上傳的文件沒有發生。 – asko

+0

文件本身是否上傳到配置的目錄? – devsheeep

+0

是的文件被上傳到配置的目錄中,但沒有任何事情發生 – asko

2

小的修正:

//service.yml 
amd_picture.uploadListener: 
    class: Amd\PictureBundle\Services\UploadListener 
    arguments: ["@doctrine.orm.entity_manager"] 
     tag: 
     - {name: kernel.event_listener, event: oneup_uploader.post_persist, method:  onUpload} 

是不是標籤。方法是:

tags: 
     - {name: kernel.event_listener, event: oneup_uploader.post_persist, method:  onUpload}