Upload de arquivo - Erro com barras invertidas

5 respostas
L

Olá galera,
tenho a seguinte linha de código que informa o caminho para qual meu arquivo será gravado no servidor.
Esse caminho está certinho, pega tudo blza, o programa é que ele inverte as barras, segue código:

String strFilePath = getServlet().getServletContext().getRealPath("/") + "img/upload";
FormFile formFile = lf.getNomeArquivo();
String strFileName = formFile.getFileName();
byte dataFile[] = formFile.getFileData();   
File file = new File(strFilePath + "/" + strFileName);  
OutputStream out = new FileOutputStream(file);

Já tentei várias formas, mas não estou conseguindo inverter, rss, sei que é bem simples, mas parei nesse erro, já usei até replaceAll para retirar as barras invertidas mas ficou com erro ainda, segue o caminho que ele tenta jogar atual, com esse código:

java.io.FileNotFoundException: /home/restricted/home/capitalleiloes/public_html/img\/upload\/backjs.txt (No such file or directory)

Ele colocou uma barra normal, que seria a correta, e colocou uma invertida também, como faço??

Grato[/b]

5 Respostas

O

Qual sistema operacional você e o seu servidor estão usando ?

O

Qual sistema operacional você e o seu servidor estão usando ?

E outra coisa quando voce instanciar o file, tenta fazer assim

File file = new File(strFilePath , strFileName);

Por que do jeito que você estava fazendo ele entende que é tudo uma String só, que seria o nome do arquivo, dessa outra forma ele entende que o primeiro argumento é o caminho.

L

eu to usando windows, mas o servidor eh linux, porém não tem importancia, nem testo aqui na minha máquina, pego direto de lá e testo diretamente no ambiente de produção.

Certo, mas eu gostaria de uma solução para o problema das barras, qual seria???

O

Amigão a solução está ai, o problema não está nas barras e sim no construtor do File, voce ta passando 2 Strings concatenadas, ele enxerga tudo isso como uma única String.

new File(strFilePath + “/” + strFileName); – > dessa forma ele vai enxergar que seu arquivo tem o nome de strFilePath/strFileName … você deve passar dessa forma … new ( strFilePath, strFileName) … Dessa forma ele enxerga que a primeira String é o caminho e a segunda o arquivo…
Testa e me fala

L

valeu fera, funcionou direitinho, rss… não imaginei que fosse isso, fiquei testando inverter as barras de várias formas =\

Grato :grin:

Criado 12 de julho de 2007
Ultima resposta 16 de jul. de 2007
Respostas 5
Participantes 2