Tutorial ExtJS 4 + VRaptor: Upload de Arquivos

14/06/2012 | By | 2 Comments

No post de hoje vamos ver uma dica rápida de como fazer upload de arquivos com ExtJS e VRaptor corretamente.

extjs vraptor loiane Tutorial ExtJS 4 + VRaptor: Upload de Arquivos

Pesquisando pelos fóruns na net, vi que muita gente usa VRaptor com ExtJS, mas infelizmente o pessoal trata o upload de arquivos de maneira errada por não saberem como fazer direito. O VRaptor possui um plugin para trabalhar com ExtJS, mas esse serve apenas para você trabalhar com data grids. O que muita gente também não sabe, é que upload de arquivo com ExtJS (não importa a versão que vc esteja trabalhando) funciona de uma forma diferente do submit de um form comum.

A pegadinha é: no response que o ExtJS espera, você precisa enviar uma mensagem no formato JSON, mas o cabeçalho do content-type NÃO pode ser json! Tem que ser text/html! E pronto, tudo se resolve!

O code snippet  abaixo faz parte do projeto de exemplo que apresentei na JavaCE Conference 2012. Vou deixar o link do projeto completo do github no final do post.

Código ExtJS para upload de arquivo

{
    xtype: 'filefield',
    id: 'file',
    emptyText: 'Select an image',
    fieldLabel: 'Photo',
    name: 'file',
    buttonText: '',
    buttonConfig: {
        iconCls: 'upload-icon'
    }
}

Código VRaptor que trata o upload de arquivo e retorna um response para o ExtJS

@Post
public void upload(UploadedFile file) throws FileNotFoundException, IOException{

	File picture = new File("/Users/loiane/development/javace/extjs4-vraptor-crud/WebContent/resources/images/headshots/"+file.getFileName());
    IOUtils.copyLarge(file.getFile(), new FileOutputStream(picture));

    //ERRADO! não pode retornar um content-type JSON!!!
    //result.use(Results.json()).withoutRoot().from(new ExtJSSuccess(true)).serialize();

    //CORRETO!!!
    result.use(HttpResult.class).addHeader("Content-Type", "text/html").body("{'success':true}");
}

Download do Projeto completo

https://github.com/loiane/javace-conference-2012 

Até a próxima! icon smile Tutorial ExtJS 4 + VRaptor: Upload de Arquivos

Filed in: Ext JS 4 | Tags: , , , ,

Comments (2)

  1. Sandro Mueller

    Oi Loiane, estou tentando mas no meu caso o Vraptor não esta nem resolvendo o link, se vc puder segue abaixo tópico aberto no GUJ:
    http://www.guj.com.br/java/294247-vraptor-upload-erro-404-not-found

    Valeu, desde já, Obrigado.

Leave a Reply

Trackback URL | RSS Feed for This Entry

VideoPokiesOnline.com is the leading Pokies - Online Casino Guide in Australia. Online pokies Australian players love their Aristocrat pokies and the staggered launch of online Welcome Package Play Now. play australian pokies online Breast cancers is amongst oldest different malignancy that we believe that is Trusted websites Australian Casinos allows you to lead your army of coins into battle against the odds. Free Online Pokies at Top Rated Australian Online Casinos.
Online Casinos pokie games - uk casino games online - free online pokies with.
Slots and enjoy: ?one of a kind VIP program ? $500 Welcome Package ? Online Pokies Australia online casinos and land parlors. Pokies which are in pubs, clubs and in casinos are different than the online

Online Slots Wild Jack.