如何使用GWT文件上传?

3
我在尝试在我的应用程序中实现文件上传小部件时遇到了一些问题。经过多次尝试,它似乎就是无法工作。
因此,我尝试获取可行的解决方案,看看是否能从中理解任何东西。

http://code.google.com/p/faculty-gwt/source/checkout

然而,我尝试使用这个上传文件,但似乎我也收到了错误消息。那个文本框和列表框是用来做什么的?它们是用来在提交前展示输入验证示例的吗?
有人能指导我解决这个问题吗?谢谢。
1个回答

2

我从未尝试使用您提供的链接,但这是我使用GWT FileUpload小部件的方法:

我使用uibinder构建了一个文件上传小部件:

<g:FormPanel ui:field="docForm">
    <g:FlowPanel ui:field="inputPane">
        /*other displayed info*/
        <g:FileUpload ui:field="DocPath"/>
        /*other displayed info*/
    </g:FlowPanel>
</g:FormPanel>

根据GWT api,FileUpload小部件只能从FormPanel中使用。
请确保在FormPanel中设置这些内容,否则可能会出现问题:
    yourFormPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
    yourFormPanel.setMethod(FormPanel.METHOD_POST);

那个小部件被拖放到我的容器页面中,然后添加到显示面板中:
private FileUploadWidget createNewUploader(){
    FileUploadWidget uploader = new FileUploadWidget(/*my constructor params*/);

    uploader.addChangeHandler(new ChangeHandler() {         
        @Override
        public void onChange(ChangeEvent event) {
            DocPanel.add(createNewUploader());
        }
    });

    return uploader;
}

我的OnChange事件的作用是,当我使用当前上传器时,让我有一个新的、空白的上传器可用。

当我准备提交时:

private void processUpload(FileUploadWidget upload, int id) {
    upload.setId(id);
    //Don't bother to submit an empty one.
    if (upload.IsFileSelected())
        upload.Submit();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接