Exibr imagem JSF

1 resposta
bruno.neves

Olá, tenho um sistema onde o usuário faz o upload de imagens para associa-las aos seus produtos cadastrados. Quando o upload das imagens é feito essas imagens são transferidas para uma pasta dentro do projeto(que está em produção), no entanto as imagens estão sendo colocadas no caminho informado quando executo o upload porém na pasta build.

Exemplo

Caminho que eu informo
   "/web/resources/img/produtos/"

   Caminho para onde esta sendo enviado
   "/build/web/resources/img/produtos/"

O problema é que quando eu uso o um componente qualquer para exibir a imagem passando o mesmo caminho que eu informei no upload o componente não encontra a imagem.

<h:graphicImage id="img"
                             value="/web/resources/img/produtos/#{mbProdutos.produto.nomeDaImagem}"
                             width="220"/>

O componente está olhando para caminho informado enquanto a imagem está sendo gravada na mesma estrutura de pasta mas dentro do build.

Gostaria de saber se existe alguma forma de fazer o upload da imagem sem cair na estrutura de pastas dentro do build, ou o componente receber no ‘value’ uma expressão que aponte para o build.
Caso alguém tenha outra ideia para sugerir eu agradeço.

Upload da imagem

InputStream arquivo = "Recebo o inputStream por parametro";
File file = new File("/resources/img/produtos/");
OutputStream os = null;

   try {
        byte[] b = new byte[arquivo.available()];
	os = new FileOutputStream(file);
	while (arquivo.read(b) > 0) {
	    os.write(b);
	}
   } finally {
	if (os != null) {
	    os.flush();
	    os.close();
	}
	arquivo.close();
   }

Aplicação Web
Netbeans 7.1.1
Glassfish 3.1.2
Primefaces 3.4.2

1 Resposta

bruno.neves

Caso alguém não tenha entendido alguma coisa ou faltou algo para ficar mais claro por favor me avisem para que eu complemente.

Obrigado desde já.

Criado 21 de janeiro de 2013
Ultima resposta 21 de jan. de 2013
Respostas 1
Participantes 1