Preciso de uma ajuda, em relação a “inserção” de imagens no servidor Glassfish e recuperação com o mesmo.
Bem estou utilizando JSF 2.2 + Primefaces. No entanto, ao tentar inserir as imagens no mesmo contexto ou no meu projeto Webapp eu não consigo obter fotos/retornar para a minha página de login ou da error 404. Mas se eu colocar em um caminho/path “externo” ele faz o upload.
Embora, eu consiga fazer o upload eu não consigo ter o retorna das imagens senão pelo WebApp.
Sobre a aplicação na qual eu havia lhe mostrado, antes.
Preciso de uma ajuda sua em relação a inserção de imagens no servidor Glassfish e recuperação com o mesmo.
Bem estou utilizando JSF 2.2 + Primefaces. No entanto, ao tentar inserir as imagens no mesmo contexto ou no meu projeto Webapp eu não consigo algumas fotos/retornar para a minha página de login ou da error 404. Mas se eu colocar em um caminho/path “externo” ele faz o upload.
Embora, eu consiga fazer o upload eu não consigo ter o retorna das imagens senão pelo WebApp.
Uma vez eu estava com o mesmo problema (acredito eu), eu estava utilizando o componente photoCam do PrimeFaces e eu queria salvar a foto na pasta resources/image do projeto, só que quando eu ia recuperar a foto não dava certo, pq quando o servidor/projeto subiu, ele subiu sem a imagem estar ali
Para visualizar uma imagem que esteja num caminho externo, você tem que utilizar o graphicImage do PrimeFaces, pois o do JSF só enxerga no contexto do projeto.
Para colocar uma imagem externa no p:graphicImage, você deve ter um objeto StreamedContent e então passar o caminho da imagem para o StreamedContent. No graphicImage você passa o StreamedContent no atributo value
StreamedContent meuStreamedContent;
...
streamedContent = new DefaultStreamedContent(new FileInputStream("caminho"));
EDIT:
O value do graphicImage vai chamar o getMeuStreamedContent(), ai lá no método você passa o valor atual de #image no FileInputStream e então deve dar certo
public StreamedContent getImage() {
//todo maybe need to load from db
imagens = cadastrarEventoBO.listarEventoGaleria(galeriaTransfer.getNomeevento());
for (GaleriaTransfer image : imagens) {
if (image.getFotosgaleria() != null) {
return new DefaultStreamedContent(new ByteArrayInputStream(image.getFotosgaleria()));
}
return null;
}
return null;
}
To verificando para outro tipo de retorna no meu DAO para o StreamContent. E tentar fazer uma lista de imagens.