GWT-GXT FileUploadField

问题描述 投票:0回答:1

我曾尝试在GXT中制作一个表格来上传文件,但我在网上看到了更多示例,但我无法使它通过一个简单的FileUploadField来在本地保存文件。

Cde片段:

    formPanel = new FormPanel();
    formPanel.setBodyBorder(false);
    formPanel.setHeaderVisible(false);
    formPanel.setAction(GWT.getModuleBaseURL() + "fileUpload");
    formPanel.setEncoding(Encoding.MULTIPART);
    formPanel.setMethod(Method.POST);
    formPanel.setButtonAlign(HorizontalAlignment.CENTER);      
    formPanel.setHeaderVisible(true);

    fileUploadField = new FileUploadField();
    fileUploadField.setName("fileName");
    fileUploadField.setAllowBlank(false);
    fileUploadField.setFieldLabel("Archivo");                       
    fileUploadField.addListener(Events.OnChange, new Listener<BaseEvent>() {

        public void handleEvent(BaseEvent BaseEvent) {
            aSubmitButton.setEnabled(true);
        }
      });

        aSubmitButton = new Button("OK");
    aSubmitButton.setEnabled(false);
    aSubmitButton.setId("submit_button");       
    aSubmitButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent inButtonEvent) {
          formPanel.submit();
    }
      });

上面的代码是FormPanel和FileUploadField的声明。

gxt
1个回答
0
投票

我们使用gwtupload-0.6.3-compat.jar库完成这项工作。

[基本上,这个想法是在服务器端,您需要创建一个servlet,它将接受您上传的文件。提到的库提供了UploadAction servlet扩展,以简化此操作。

在客户端,您可以使用gwtupload组件之一。例如,我们使用MultiUploader。那实际上是几行代码。主代码在侦听器中:

private IUploader.OnFinishUploaderHandler onFinishUploaderHandler = new IUploader.OnFinishUploaderHandler() {
    public void onFinish(IUploader uploader) {
        if (uploader.getStatus() == Status.SUCCESS) {
            // What you want to do when file is uploaded.
        }
    }
};

其余部分由组件负责。由于该库是用于GWT的,因此它附带了源代码,因此您可以在后台查看其功能并阅读代码中的大量注释。

当然可以免费使用。

© www.soinside.com 2019 - 2024. All rights reserved.