0

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

4

2 回答 2

0

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

如果你真的改变了方法,你可能忘记了super()声明?

如果可以的话,你能否给我们看一个你修改过的课程的例子

于 2013-07-09T09:55:22.167 回答
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
        }
    }
}
于 2017-03-01T08:24:37.993 回答