Upload com GWT e GXT

1 resposta
alias

Olá amigos :D

Alguem já trabalhou com upload no GWT?Tambem estou usando a biblioteca de componentes GXT (EXT-GWT)

O código é o seguinte:

final FormPanel panel = new FormPanel();
				panel.addListener(Events.Submit, new Listener<FormEvent>(){
					@Override
					public void handleEvent(FormEvent fe) {
						EasyMessageBox.info("Imagem carregada! Verifique a listagem de registros.");
					}
				});
				
				panel.setHeaderVisible(false);
				panel.setAction("minhaURL");   
			    panel.setEncoding(Encoding.MULTIPART);   
			    panel.setMethod(Method.POST);   
			    
				Dialog dialog = new Dialog(){

					@Override
					protected void onButtonPressed(Button button) {
						System.out.println(button.getText());
						
						panel.submit();
					}
					
				};
				
				dialog.setHeading("Imagem");
				dialog.setWidth(600);
			    dialog.setHeight(150);
			    dialog.setButtons(Dialog.OKCANCEL);
			    
			    FileUploadField file = new FileUploadField();

			    file.setAutoWidth(true);
			    file.setAllowBlank(false); 
			    file.setFieldLabel("Arquivo");  
			    panel.add(file);  
			    
			    dialog.add(panel);

Aqui será aberta uma caixa de dialogo com um form, e dentro do form um controle do GXT FileUploadField. Quando o botao OK da dialogbox for clicado vai submeter o form...mandando o processamento para esse servlet:

boolean isMultipart = ServletFileUpload.isMultipartContent(req);
		
		if (isMultipart){
			
			FileItemFactory factory = new DiskFileItemFactory();
			
			ServletFileUpload upload = new ServletFileUpload(factory);
			
			try{
				List<FileItem> files = upload.parseRequest(req);
				
				for (FileItem file : files){
					byte[] buffer = file.get();
					
					System.out.println(buffer);
					
				}
			} catch (FileUploadException e){
				e.printStackTrace();
			}

Aqui estou usando a API de upload da Jakarta. Mas...o retorno do metodo upload.parseRequest NAO RETORNA NENHUM ITEM!

O que estou fazendo de errado? :cry:

Obrigado amigos!

1 Resposta

alias

Consegui aqui pessoal!
Se alguem mais tiver esse problema, o código acima faltou um pequeno detalhe:

file.setName("file");

É preciso associar um nome ao seu componente.
Tambem é preciso a lib do Commons-IO no seu projeto

Obrigado!

Criado 25 de junho de 2009
Ultima resposta 25 de jun. de 2009
Respostas 1
Participantes 1