Carregar imagem apartir de uma pasta
No meu sistema, teremos um estrutura de pasta, da seguinte forma. Existem pastas de 0 a 9. A imagem do cara, recebe como nome o número do CPF dele. Em pastas com números 6, estão todos os CPF's que comecem com seis. O que eu quero é o seguinte. Fazer um código ou classe única, que para vez e em cada página que eu preciso carregar a foto do cara(praticamente em todas, eu deva carregar esse código(um template). Para buscar eu tenho que fazer, pegar o primeiro número do cpf do usuário logado, vejo a pasta referente aquele número e então faço a pesquisa pelo cpf dele e retorno a imagem(foto) e carrego em minha página. Gostaria de um caminho, uma luz para fazer isso. Eu guardo no banco apenas o caminho da imagem. A imagem fica nas pastas.
Pjava
Curtidas 0
Respostas
Davi Costa
06/05/2011
vc precisa pensar em algumas coisas..definir a extensão do arquivo... jpg,png ou gif....
nomear todos esses arquivos nessa pasta predifinida, em WebContent...
com o (cpf).jpg e usar a tag: (obviamente se escolher jpg)
<h:graphicImage value="#{seubean.usuario.cpf}.jpg"/>
ou ainda criar um atributo string e anotá-lo como transient para o hibernate não considerar no banco,
com o nome imagem por exemplo, e no seu get vc verifica se cpf está nuloe se não estiver vc retorna cpf+".jpg" e na tag do jsf vc pode usar, algo como :
<h:graphicImage value="#{seubean.usuario.imagem}"/>
Seria interessante tb, vc verificar se o arquivo existe e deixar nessa pasta uma imagem padrão para quando
os usuários não tiverem imagem. Como assim?
depois de vc concatenar cpf+".jpg", vc tenta ver se esse arquivo existe se existir vc retorna a String normalmente senão vc retorna o texto desse arquivo padrão: "imagem_padrao.jpg" e vc mantêm esse arquilo na pasta com essa imagem padrão.
Só mais uma coisa que eu esqueci, se colocar só cpf+".jpg" o jsf não vai encontrar a imagem, tem qe colocar antes a pasta onde ele está, e essa pasta tem que estar dentro de WebContet.Exemplo:
"/imagens/"+cpf+".jpg";
Att Davi
nomear todos esses arquivos nessa pasta predifinida, em WebContent...
com o (cpf).jpg e usar a tag: (obviamente se escolher jpg)
<h:graphicImage value="#{seubean.usuario.cpf}.jpg"/>
ou ainda criar um atributo string e anotá-lo como transient para o hibernate não considerar no banco,
com o nome imagem por exemplo, e no seu get vc verifica se cpf está nuloe se não estiver vc retorna cpf+".jpg" e na tag do jsf vc pode usar, algo como :
<h:graphicImage value="#{seubean.usuario.imagem}"/>
Seria interessante tb, vc verificar se o arquivo existe e deixar nessa pasta uma imagem padrão para quando
os usuários não tiverem imagem. Como assim?
depois de vc concatenar cpf+".jpg", vc tenta ver se esse arquivo existe se existir vc retorna a String normalmente senão vc retorna o texto desse arquivo padrão: "imagem_padrao.jpg" e vc mantêm esse arquilo na pasta com essa imagem padrão.
Só mais uma coisa que eu esqueci, se colocar só cpf+".jpg" o jsf não vai encontrar a imagem, tem qe colocar antes a pasta onde ele está, e essa pasta tem que estar dentro de WebContet.Exemplo:
"/imagens/"+cpf+".jpg";
Att Davi
GOSTEI 0
Davi Costa
06/05/2011
Só mais uma informação que esqueci de passar, vc pode também usar as tags d primefaces.
Att Davi
Att Davi
GOSTEI 0
Dyego Carmo
06/05/2011
Voce pode carregar direto do jar ...
NomeDaClass.class.getResourceAsStream("minha.jpg")
Funciona para os arquivos q estao no pacote NomeDaClass
NomeDaClass.class.getResourceAsStream("minha.jpg")
Funciona para os arquivos q estao no pacote NomeDaClass
GOSTEI 0
Pjava
06/05/2011
Esse não está resolvido ainda, mas vou fechar esse post e se não resolver, pois não vou testar agora, ai posto tra vez.
GOSTEI 0