GWT Image Загрузить пустой контент - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь реализовать функцию загрузки изображений GWT.Я сделал необходимое изменение кода, но по какой-то причине загрузка не происходит.На стороне сервера изображение не принимается.Поэтому я проверил на стороне клиента (в браузере) заголовок и контент запроса, а затем обнаружил, что Content-Length: 44 (всего 44).Тогда я понял, что изображение не отправляется на сервер с момента отправки.Пожалуйста, проверьте приведенный ниже код GWT.

    VerticalPanel vp = new VerticalPanel();
    vp.add(CommonFormLayoutUtil.createLabel("Upload"));
    final FormPanel form = new FormPanel();
    form.setAction("CGIImageUpload");
    // set form to use the POST method, and multipart MIME encoding.
    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);

    final FileUpload fileUpload = new FileUpload();
    Button uploadButton = new Button("Upload");
    uploadButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            //get the filename to be uploaded
            String filename = fileUpload.getFilename();
            if (filename.length() == 0) {
                showError("No File Specified!", null);
            } else {
                //submit the form
                form.submit();                    
            }               
        }
    });
    vp.add(fileUpload);
    vp.add(uploadButton);

    form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {

        @Override
        public void onSubmitComplete(SubmitCompleteEvent event) {
            // When the form submission is successfully completed, this 
            //event is fired. Assuming the service returned a response 
            //of type text/html, we can get the result text here 
            showError(event.getResults(), null);        
        }
    });
    form.add(vp);

Я что-то здесь упускаю?Пожалуйста, предложите.

Спасибо.

1 Ответ

0 голосов
/ 12 октября 2018

FormPanel заявляет следующее:

"Эта панель может использоваться для обеспечения взаимодействия с серверами, которые принимают традиционную кодировку HTML-форм. Следующие виджеты ( те, которые реализуют com.google.gwt.user.client.ui.HasName ) будет отправлено на сервер, если они содержатся в этой панели "(выделено мое)

Вам необходимо установить имя виджета FileUpload, иначе он не будет отправленFormPanel.

fileUpload.setName("someName");

Попробуйте установить это, и оно должно работать

...