Como obter o caminho físico completo de uma pasta utilizando VRaptor
7 respostas
L
leolimas
Olá pessoal,
Estou fazendo uma app de upload de imagens, mas só conseguir fazer o upload informando o caminho completo para a pasta que no meu caso atual é
/media/Projetos/workspace/webTest/WebContent/uploads
Mas eu gostaria de saber se há alguma função para recuperar o caminho do projeto no workspace “/media/Projetos/workspace/webTest”
Andei procurando no forum mas não consegui achar até agora…
Olá leolimas!
Vou mostrar como fiz aqui pra vc aplicar no seu caso:
@ComponentpublicclassImagens{privateFilepastaImagens;privateImagemDAOimagemDAO;publicImagens(){StringpastaImagens="/home/bruno/fotos";this.pastaImagens=newFile(pastaImagens);Filedestino=newFile(pastaImagens);destino.mkdir();}publicImagens(FilepastaImagens){this.pastaImagens=pastaImagens;}publicvoidsalva(UploadedFileimagem,Imovelimovel){Filedestino=newFile(pastaImagens,imovel.getIdImovel()+".imagem");try{IOUtils.copyLarge(imagem.getFile(),newFileOutputStream(destino));}catch(IOExceptione){thrownewRuntimeException("Erro ao copiar imagem",e);}}
Eu salvo fora da aplicação, é o melhor a fazer, criei a pasta fotos na minha Home e salvo lá.
Melhor ainda é salvar apenas o caminho da imagem no banco e depois recuperar esse caminho apontando pra imagem. Mas ai é outro papo, têm tópicos tratando do asusnto, mas os que eu vi não mostram código ou estão sem a solução.
Abraço!
L
leolimas
hummm
legal, fiquei com duvida em um trecho
8. String pastaImagens = “/home/bruno/fotos”;
9. this.pastaImagens = new File(pastaImagens);
10. File destino = new File(pastaImagens);
11. destino.mkdir();
Aqui voce cria 2 objetos File com o mesmo path só para garantir que o dir exista é isso ?
Se o dir já existir o mkdir() não irá dar erro ? faz tempo que não mecho com Files em java rsrs
Eu queria deixar tudo na mesma pasta por comodismo mesmo, rsrs eu consegui chegar neste caminho
/media/Projetos/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webTest/.
Só não consegui entender ainda o que é este .metadata/.plugins, se nao tivesse isso já era tava resolvido
G
garcia-jj
Mas eu gostaria de saber se há alguma função para recuperar o caminho do projeto no workspace "/media/Projetos/workspace/webTest"
O correto é você injetar o HttpServletRequest e a partir dele obter o getRealPath. Você pode fazer algo assim:
Estou fazendo uma app de upload de imagens, mas só conseguir fazer o upload informando o caminho completo para a pasta que no meu caso atual é
/media/Projetos/workspace/webTest/WebContent/uploads
Você está usando o componente padrão do Vraptor para upload de imagens?
G
Guevara
Eu segui a apostila da Caelum, só que lá mostra como fazer para salvar a imagem dentro do contexto da aplicação, que é o que vc está fazendo, se vc quer salvar fora da aplicação é só fazer como eu fiz.
O makedir seria para criar a pasta mesmo, esse código converte o que seria uma String num File. Tô vendo ainda como salvar apenas o caminho no banco, isso é o ideal.
Abraço!
Estou fazendo uma app de upload de imagens, mas só conseguir fazer o upload informando o caminho completo para a pasta que no meu caso atual é
/media/Projetos/workspace/webTest/WebContent/uploads
Você está usando o componente padrão do Vraptor para upload de imagens?
Oi usando getRealPath("/") o resultado foi
/media/Projetos/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webTest/
L
Lucas_Cavalcanti
isso acontece pq qdo vc usa o plugin do eclipse pra subir sua aplicação no tomcat, ele faz o deploy nessa pasta interna do plugin…
se vc quiser que o getRealPath caia na pasta do seu workspace, terá que subir o tomcat (ou jetty, ou qqer outro servidor) manualmente, e apontar pra sua pasta WebContent