Boa noite a todos.
estou enfrentando um pequeno problema para localizar uma pasta para colocar as imagens.
Tenho a seguinte arvore de diretórios.
musicBay
…
/WebContent
/resources
/imagens
/artista
/album
eu gostaria de enviar as imagens que faço upload para pasta artista, no entanto não consegui nenhum método que me retornasse o caminho relativo
até a pasta.
já utilizei:
FacesContext.getCurrentInstance().getExternalContext().getRealPath(“artista/”);
mas ele me retorna:
/media/Sleipnir/Documents/LinuxJavaWorkspace[color=red]/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/musicbay/artista[/color]
[code]
public void copyFile(String fileName, InputStream in) {
String diretorio = FacesContext.getCurrentInstance().getExternalContext().getRealPath(“artista/”);
System.out.println(diretorio);
try {
// write the inputStream to a FileOutputStream
OutputStream out = new FileOutputStream(new File(diretorio+fileName));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = in.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
in.close();
out.flush();
out.close();
System.out.println("New file created!");
} catch (IOException e) {
System.out.println(e.getMessage());
}
}[/code]
gostaria de saber se alguém conhece um método capaz de retornar o path.
desde já agradeço. abraço
Não é boa prática copiar arquivos para dentro do servidor, ou das pastas do servidor.
Coloque em um diretório esterno.
ok amigo. no entanto conhece alguma forma para resolver esse problema ?
[quote=denisagui]ok amigo. no entanto conhece alguma forma para resolver esse problema ?[/quote]Veja c isso te ajuda: http://stackoverflow.com/questions/2698002/how-can-i-get-relative-path-of-the-folders-in-my-project-java
Mas fique esperto, o servidor poderá muito bem apagar a pasta que você criar/editar dentro dele. ^^
[quote=jakefrog][quote=denisagui]ok amigo. no entanto conhece alguma forma para resolver esse problema ?[/quote]Veja c isso te ajuda: http://stackoverflow.com/questions/2698002/how-can-i-get-relative-path-of-the-folders-in-my-project-java
Mas fique esperto, o servidor poderá muito bem apagar a pasta que você criar/editar dentro dele. ^^[/quote]
vou realizar o teste aqui.
eu entendo os problemas de colocar arquivos externos dentro do servidor, mas nesse caso eu necessito carrega-los com ele.
nenhum dos métodos utilizados naquele post foram uteis.
eu consigo pegar o caminho absoluto, no entanto isso não seria muito útil visto que a minha aplicação ficaria presa a um determinado sistema operacional.
algum outro método ?
procura no google get relative path java web
Se for local use dessa forma:
String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/")
+"//web//seu_diretorio//"
No servidor deve ser assim:
String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("..//..")
+"//web//seu_diretorio//"
Nesse momento estou procurando uma solução pra funcionar tanto local quanto no server, se eu resolver isso posto aqui.
Use um System.Out.Printll pra imprimir o caminho vai ajudar um pouco.
Boa sorte