Hello everybody!

Following are some examples found right here in the discussion group
took two classes below.

In my class I have ArquivoUpload umTextBox a form with a ListBox and a
FileUpload. In class FileUploadServlet're getting only the data from
the FileUpload. Could someone help me also take the data from the
TextBox?
In debug mode I see everything that is in the form of the request but
I can not extract the values​​.

public class ArquivoUpload implements EntryPoint {

        public static final String UPLOAD_ACTION_URL = GWT.getModuleBaseURL()
+ "upload";

        @Override
        public void onModuleLoad() {

                // Cria um FormPanel e apontá-lo para um serviço.
                final FormPanel form = new FormPanel();
                form.setAction(UPLOAD_ACTION_URL);

                // Porque nós vamos adicionar um widget FileUpload, vamos 
precisar
para
                // definir o
                // Form usar o método POST, e codificação MIME multipart.
                form.setEncoding(FormPanel.ENCODING_MULTIPART);
                form.setMethod(FormPanel.METHOD_POST);

                // Cria um painel para conter todos os elementos do formulário.
                VerticalPanel panel = new VerticalPanel();
                form.setWidget(panel);

                // Criar um TextBox, dando-lhe um nome para que ele será 
submetido.
                final TextBox tb = new TextBox();
                tb.setName("TextBoxFormElement");
                panel.add(tb);

                // Criar um ListBox, dando-lhe um nome e alguns valores que 
devem
ser
                // associados
                // Com suas opções.
                ListBox lb = new ListBox();
                lb.setName("listBoxFormElement");
                lb.addItem("foo", "fooValue");
                lb.addItem("bar", "barValue");
                lb.addItem("baz", "bazValue");
                panel.add(lb);

                // Criar um widget FileUpload.
                final FileUpload upload = new FileUpload();
                upload.setName("uploadFormElement");
                panel.add(upload);

                panel.add(new UploadForm());

                // Adicionar um botão 'Enviar'.
                panel.add(new Button("Submit", new ClickHandler() {
                        public void onClick(ClickEvent event) {
                                        form.submit();
                        }
                }));

                //Adicionar um manipulador de eventos para o formulário.
                form.addSubmitHandler(new FormPanel.SubmitHandler() {

                        @Override
                        public void onSubmit(SubmitEvent event) {

                                if (upload.getFilename().equals("")) {
                                        event.cancel();
                                        return;
                                }

                                //Este evento é disparado pouco antes do 
formulário é submetido.
                                //Podemos aproveitar esta oportunidade para 
realizar a validação.
                                String filename= upload.getFilename();
                                int index = filename.lastIndexOf(".");
                                String ext = filename.substring(index + 1);
                                if (!(ext.equals("gif") || ext.equals("jpg") || 
ext.equals("GIF")
|| ext.equals("JPG"))){
                                        Window.alert("Extensão de arquivo 
inválida. Por favor adicione
apenas arquivos com extensões .jpg ou .gif.");
                                        event.cancel();
                                }
                        }
                });

                form.addSubmitCompleteHandler(new 
FormPanel.SubmitCompleteHandler()
{
                        @Override
                        public void onSubmitComplete(SubmitCompleteEvent event) 
{
                                ///Quando o envio do formulário é concluída com 
êxito,
                                //este evento é acionado. Assumindo que o 
serviço retornou
                                //uma resposta do tipo text / html, podemos 
obter o texto
resultado aqui
                                //(consulte a documentação FormPanel para mais 
explicações).
                                Window.alert(event.getResults());
                                System.out.println(event.getResults());
                        }
                });
                RootPanel rootPanel = RootPanel.get();
                rootPanel.add(form);
        }
}



public class FileUploadServlet extends HttpServlet {

        private static final String UPLOAD_DIRECTORIY = "C:\\uploaded\\";

        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse
resp)
                        throws ServletException, IOException {
                super.doGet(req, resp);
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse
resp)
                        throws ServletException, IOException {

                // processar apenas as solicitações de várias
                if (ServletFileUpload.isMultipartContent(req)) {

                        // Criar uma fábrica de artigos baseados em disco de 
arquivos
                        FileItemFactory factory = new DiskFileItemFactory();

                        // Crie um manipulador de novo upload de arquivos
                        ServletFileUpload upload = new 
ServletFileUpload(factory);

                        // Analisar o pedido
                        try {

                                List<FileItem> items = upload.parseRequest(req);

                                for (FileItem item : items) {

//                                       processo só upload de arquivo - 
descartar outros tipos de
//                                       item do form
                                         if (item.isFormField()) continue;

//                                       pega o nome do arquivo
                                        String fileName = item.getName();

//                                       pega extensão do arquivo
                                        int index = fileName.lastIndexOf(".");
                                        String ext = fileName.substring(index + 
1);
                                        ext = "." + ext;
                                        System.out.println(ext);

                                        // obter apenas o nome do arquivo não o 
caminho todo
                                        if (fileName != null) {
                                                fileName = 
FilenameUtils.getName(fileName);
                                        }

                                        File uploadedFile = new 
File(UPLOAD_DIRECTORIY, fileName);
                                        if (uploadedFile.createNewFile()) {
                                                item.write(uploadedFile);
                                                
resp.setStatus(HttpServletResponse.SC_CREATED);
                                                resp.getWriter().println("O 
arquivo foi criado com sucesso.");
                                                resp.flushBuffer();
                                        } else
                                                throw new IOException(
                                                                "O arquivo já 
existe no repositório.");
                                }

                        } catch (Exception e) {
                                
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                                                "Ocorreu um erro ao criar o 
arquivo: " + e.getMessage());
                        }

                } else {
                        
resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE,
                                        "Tipo de conteúdo pedido não é 
suportado pelo servlet.");
                }
        }
}


Thank you!

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to