Páginas

Mostrando entradas con la etiqueta ficheros. Mostrar todas las entradas
Mostrando entradas con la etiqueta ficheros. Mostrar todas las entradas

29 de enero de 2013

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");