0

ファイルをアップロードするために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 の宣言です。

4

1 に答える 1

0

gwtupload-0.6.3-compat.jar ライブラリを使用してジョブを実行します。

基本的には、サーバー側で、アップロードされたファイルを受け入れるサーブレットを作成する必要があるという考えです。上記のライブラリは、それを容易にする UploadAction サーブレット拡張機能を提供します。

クライアント側では、gwtupload コンポーネントの 1 つを使用できます。たとえば、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 用であるため、ソース コードが付属しているため、舞台裏で何を行っているかを確認したり、コード内の広範なコメントを読むことができます。

もちろん使い放題。

于 2013-02-06T16:10:38.573 に答える