public void listener(FileUploadEvent event) throws Exception {
uploadItem = event.getUploadedFile();
System.out.println("Nome do arquivo enviado: " + uploadItem.getName());
System.out.println("Tipo do arquivo enviado: " + uploadItem.getContentType());
System.out.println("Tamanho do arquivo enviado: " + uploadItem.getSize());
System.out.println("InpuStream: " + uploadItem.getInputStream());
System.out.println("Byte: " + uploadItem.getData());
byteArray = uploadItem.getData();
//exibe caminho completo da aplicação
String caminho = System.getProperty("user.dir");
//System.out.println(caminho+"\\");
caminho += "\\";
String c = "C:\\Users\\fabio.cunha\\Documents\\Backup\\Backup\\NetBeansProjects\\Curriculo\\";
file = new java.io.File(c + uploadItem.getName());
FileOutputStream in = new FileOutputStream(file);
in.write(byteArray);
in.close();
}[/code]
O codigo funciona perfeitamente, porém apenas quando uso ele localmente na minha maquina, quando envio ele pro servidor que é linux, como o caminho é diferente simplesmente não funciona, como posso usar um caminho para que ele seja o mesmo para meu servidor local e no servidor remoto?
ps: A pasta Curriculo é onde está minha aplicação fica, tanto no servidor local quanto no remoto
Porém pra funcionar com a classe ‘File’ a barra tem q ser assim “\” ou “/” como vc mencionou, somente uma ‘’ fica como caractere de escape e ai não funciona
Eu até passei a String na mão no meu exemplo, mas porém a idéia era que eu não precisasse passar na mão e sim usando alguma instrução do próprio java que pegasse o caminho correto da aplicação independente de que tipo de servidor(ou diretório) ele esteja.
No caso o comando
System.getProperty("user.dir");
consegue pegar o caminho correto, porém não adianta devido ele gerar somente uma ‘’ para descrever o caminho
Porém quando eu enviasse o projeto para o servidor o caminho vai ser outro
na verdade eu nem sei qual é, mas deve ser algo do tipo
/home/nomedoservidor/tomcat/aplicacao(to chutando o caminho)
O que eu estou querendo é pegar o caminho absoluto e usar ele junto com o ‘new File’ para criar meus arquivos.
Por isso tentei usar o comando
System.getProperty("user.dir");para trazer o caminho absoluto, e para funcionar com o ‘new File’ precisa ser ‘\’ ou ‘/’, mas ele ja traz formatado com ‘’ no windows. Por isso queria uma maneira alternativa de pegar esse caminho absoluto q não fosse usando o System.getProperty("user.dir"); para que ele trouxesse formatado o caminho usando ‘/’ ou ‘\’.
Não adianta passar a String do caminho na mão pq ele vai ter caminhos diferentes quando estou desenvolvendo na minha maquina(windows) e quando ele estiver no servidor(linux)
Espero que eu tenha conseguido explicar direito, t+
user.dir no windows traz
C:\Users\fabio.cunha\Documents\Backup\Instalados\apache-tomcat-6.0.33\bin
no linux eu não sei o q ele traz, mas sua idéia de usar
seuCaminho.replaceAll("\", “/”);
é uma boa idéia, vou tentar