2012-11-02 161 views
0

我想上傳一個記錄在vaadin中的文件。我正在使用vaadin的上傳組件。但問題是,我不想顯示文件對話框,而是想要引發事件以從我自己的按鈕上傳組件。我寫了一個由Upload組件擴展的類,並調用了它的fireUploadSuccess()方法,這個事件被成功解決了。但我想手動調用receiveUpload()方法,我的意思是通過從我自己的按鈕中觸發一些事件來調用此方法。任何解決方案朋友 謝謝!Vaadin上傳組件receiveUpload()方法

回答

0

通常,在基礎上傳類中,當調用fireUploadSuccess()時,通常會調用附加類的uploadSucceeded方法。

如果你真的改變了方法,你可能忘記了super()聲明?

你能不能也請告訴我們您的修改類的例子,如果你能

0

這裏是我使用的過程。

我創建了一個名爲MyFileReceive的自定義類,它實現了Receiver接口的Upload.java文件。在那裏,我重寫了方法receiveUpload()並做了我想要做的事情,當上傳的文件被收到。將MyFileReceiver類的實例放入Upload類的構造函數中。希望它能起作用..

public class MyUI extends UI{ 
     private MyUI.MyFileReceiver receiver = new MyUI.MyFileReceiver(); 
     private Upload upload; 
     protected void init(VaadinRequest vaadinRequest) { 
      ............. 
      ....................... 
      upload = new Upload(null, receiver); 
      upload.addSucceededListener((SucceededEvent event) -> { 
      //Do what you want to do 
    }); 
    public class MyReceiver implements Receiver { 
     @Override 
     public OutputStream receiveUpload(String filename, String mimeType) { 
     //do what you want to do when receive upload 
     } 
    } 
}