2012-11-02 165 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 
     } 
    } 
}