JBoss - Qual a melhor maneira de se fazer upload de arquivos

1 resposta
jaabax

tudo bom pessoal
estou desenvolvendo uma aplicação e o servidor é o JBoss
estou com dúvida em onde colocar os arquivos após o upload… pode ser em algum lugar dentro do servidor ou tem q ser em alguma pasta específica do SO?
coloco na pasta tmp?
obrigado

1 Resposta

marcuscarvalho1

É o seguinte:
Se você usar o método getRealPath de um objeto do tipo ServletContext, por default o java tentará salvar o arquivo dentro da própria pasta do projeto, no servidor. É algo que eu não recomendo. Por quê? Porque se os arquivos upados estão na pasta do projeto, quando você tiver que fazer um redeploy do seu sistema para implantar uma versão nova, terá que antes fazer backup de tudo, senão perde os arquivos upados. Isto porque é padrão dos IDE’s java apagar toda a aplicação existente e gravar outra (sem os upados) por cima, na hora de fazer o redeploy.
O que eu recomento é que você crie uma pasta dentro do diretório do servidor, mas fora da aplicação. Eu faço assim: crio uma pasta “upload” que está no mesmo nível das pastas de cada aplicação que roda no servidor. Desta forma, quando precisar atualizar uma versão de algum sistema, os arquivos que estão nesta pasta upload permanecerão intactos.

O método getRealPath que uso para fazer upload de arquivos é esse:

FacesContext facesContext = FacesContext.getCurrentInstance(); ServletContext scontext = (ServletContext)facesContext.getExternalContext.getContext(); String nomeArquivoCompleto = scontext.getRealPath("/" + nomeArquivo + ".pdf");

Desta forma, ele grava em “nomeArquivoCompleto” o nome do caminho até a pasta interna do projeto, dentro do servidor. Aí eu faço um replace no nome da pasta da aplicação, para que o sistema grave em uma pasta fora da aplicação:

nomeArquivoCompleto = nomeArquivoCompleto.replace("applications/sca", "docroot/upload/sca"); //sca é o nome da minha aplicação

Espero que ajude.

Criado 1 de julho de 2011
Ultima resposta 1 de jul. de 2011
Respostas 1
Participantes 2