Subida archivos con FileUploadField de GXT

– Configuración FormPanel:

        FormPanel fp = new FormPanel();
        fp.setEncoding(Encoding.MULTIPART);
        fp.setMethod(Method.POST);
        fp.setAction(«uploadServlet»); // Path del servlet de subida

– Configuración FileUploadField:

        FileUploadField flupldFld = new FileUploadField();
        flupldFld.setName(«file»);

– Añadir el FileUploadField al FormPanel:

       fp.add(flupldFld, new FormData(«100%»));

– Configuración Button:

      myButton.addSelectionListener(new SelectionListener() {

            @Override
            public void componentSelected(ButtonEvent ce) {
               
                if (display.getFlupldFld().getValue() != null) {
                    fp.submit();
                }
            }
        });

– Añadir listener de respuesta de la subida al FormPanel

      fp.addListener(Events.Submit, new Listener () {

            @Override
            public void handleEvent(final FormEvent be) {

                Log.info(«[be.getResultHtml()] = » + be.getResultHtml());
                }
            }
        });

– Creas un servlet y con este código tendrás el archivo (necesitarás la librería de apache commons-fileupload)

      FileItemFactory factory = new DiskFileItemFactory();
      ServletFileUpload upload = new ServletFileUpload(factory);
      List items = (List) upload.parseRequest(request);

– También en el servlet puedes escribir algo en su salida para que lo puedas recibir en el ‘be.getResultHtml()’ del listener que le pusiste al FormPanel.

      response.getOutputStream().print(«Fichero subido correctamente»);

2 comentarios sobre “Subida archivos con FileUploadField de GXT

Responder a José M Corsino Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *