File exists

pessoal, programando isto dentro de um jsp…

ele serve para uma listagem de produtos para verificar se este produto tem uma imagem ou não…

o código é o seguinte

    <%@page import="java.io.File"%>
														File arq = new File("../img/"+codigo+"_180.jpg");
String img = "../img/0_180.jpg";
															if (arq.exists()) {
																img = "../img/"+codigo+"_180.jpg";
															}

O meu problema é que ele sempre retorna false mesmo a imagem existindo… e tenho certeza que o caminho está correto, pois logo dpois eu mando ele mostrar a imagem…

Cara…

Apenas registrando uma observação… manter esse tipo de lógica no JSP não é uma boa prática, dificulta a manutenção e deixa o código sujo…

Enfim… sobre a dúvida, de onde vem essa variável “código”? Ela está com o valor correto?

Abraço,

Armando

As barras não seriam assim:


 <%@page import="java.io.File"%>
File arq = new File("..\img\"+codigo+"_180.jpg");
String img = "..\img\0_180.jpg";
if (arq.exists()) {
img = "..\img\"+codigo+"_180.jpg";
} 

sim, este endereço existe

…/img/"+codigo+"_180.jpg

eu estou fazendo ali só para teste, depois vou mandar para classe

Mas esse JSP esta rodando em UNIX - Linux ou Windows?

tah em linux…

as \ e as // não funcionaram, tentei dos 2 jeitos

Lembre que quando vc usou

new File("…\img\"+codigo+"_180.jpg");

Vc está usando um caminho relativo ao contexto que o programa foi chamado, que no caso de servlets tem raiz no context path acertado no application server.

P.S: Procure não utilizar caminhos relativos dessa forma. Use getServlet().getServletContext().getRealPath(<caminho_da_aplicacao>) para obter o caminho no servidor.

getRealPath() recebe um diretório da aplicação web.

essa era minha dúvida Renato será em Linux ou Windows

segue a dica do amigo acima busque o caminho virtual da aplicação e tente verficar se o arquivo existe l

Ps:lembrando deixe as barras conforme padrão unix /

getServlet().getServletContext().getRealPath(<caminho_da_aplicacao>)

e como uso isso?

ainda não consegui, estou me quebrando, tentei até colocar caminho absoluto e não rola…

antenção por eu estar rodando de um servidor…

tem alguma função que retorna o caminho atual? é aquela acima? como uso?

cara, faz o seguinte… posta o código todo da sua página aí…

véio, é praticamente isso

<%@page import=“java.io.File”%>
File arq = new File("…/img/"+codigo+"_180.jpg");
String img = “…/img/0_180.jpg”;
if (arq.exists()) {
img = “…/img/”+codigo+"_180.jpg";
}

Aparentemente, se eu não estou errado, você está usando uma variável, código, que não recebeu valor nenhum. Tenta imprimir o valor dela pra ver o que tem aí…

Abraço,

Armando

Nah… ela tem valor, tenho certeza de que a imagem existe, pois estou imprimindo a própria depois deste código…

Cara, esse trecho que você mandou não é uma página JSP válida, a variável codigo não foi declarada e não está mostrando a imagem em baixo pra gente saber o que você está fazendo.

Você podia mandar a página completa e, adicionalmente, informar mais ou menos a estrutura do seu .war?

Abraço,

Armando