Caros colegas,
Em uma página JSP, listo o conteúdo de um ResultSet, mostrando matrícula do funcionário, nome e foto. Todos os arquivos de fotos estão em uma determinada pasta do servidor, nomeados na forma "MATRICULA.jpg". Então para exibir as fotos nas listagens, faço:
<img src="path/<%=matricula%>.jpg">
Quando não houver foto quero mostrar erro.jpg, uma imagem que fiz, e não aquele "X" vermelho que o browser exibe. Alguém sabe como fazer isso?
[ Editado por Kabula No dia _MONTHDATETIME ]
Checar URL
4 Respostas
Olá, eu uso esse método, pode ser utilizado no JSP direto, basta criar a função.
public static synchronized boolean fileExists(File fname) {
FileInputStream fs = null;
try {
fs = new FileInputStream(fname);
return true;
} catch (FileNotFoundException fnf) {
return false;
}
}
O teste pode ser algo como:
if ( fileExists( … ) ) {
// carregue a foto
} else {
// carregue a imagem de erro
}
Olá.
Além da maneira que o Alessander mostrou, que funciona para qualquer tipo de arquivo, vc pode usar objetos específicos para image, tal como FileImageInputStream. Desta forma vc pode obter dados da imagem(tamanho, largura, altura, etc) e manipular a imagem, criando thumbnails por exemplo.
_________________
Abraço,
Franklin Samir
www.portaljava.com
[ Editado por Franklin No dia _MONTHDATETIME ]
O problema é que não sei o path real dos arquivos. Sei apenas que ficam em "http://intranet.XXX.com.br/fotos/". Parece que a classe File não reconhece dessa forma.
Detalhe: A JDK que uso é inferior a 1.4
Olá.
Deixa eu ver se entendi:
VC tá tentando usar fotos em um servidor diferente do servidor onde estão os .JSP. Isto?
Se for isto, há a possibilidade de o servidor onde estão as imagens não permitir acesso as à elas de um servidor fora do mesmo domínio.
Resumindo, vc não consegue usar as fotos do site www.XXX.com no site www.YYY.com, pq o servidor das fotos está configurado pra não permitir isto.
A maioria dos free servers está fazendo isto, para q não seja possível usar um free host apenas para armazenar fotos, o q aumenta muito o consumo de banda.