Vaadin上传组件的receiveUpload()方法

时间:2012-11-02 08:30:30

标签: java vaadin

我想在vaadin中上传录制的文件。我正在使用vaadin的上传组件。但问题是我不想显示文件对话框,而是我想激发事件从我自己的按钮上传组件。我编写了一个由Upload组件扩展并调用其fireUploadSuccess()方法的类,该事件被成功触发。但我想手动调用receiveUpload()方法,我的意思是通过从我自己的按钮触发一些事件来调用此方法。任何解决方案的朋 谢谢!

2 个答案:

答案 0 :(得分:0)

通常,在基类Upload Class中,当调用fireUploadSuccess()时,通常会调用附加类的uploadSucceeded方法。

如果您真的更改了方法,可能会忘记super()语句?

如果你能

,还能告诉我们你修改过的课程的例子吗?

答案 1 :(得分: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
        }
    }
}