graphicImage com Primefaces como atualizar foto?

1 resposta
primefacesjava
L

Boa noite pessoal :smiley:

Estou com um problema com um site que estou desenvolvendo em java ee,
acontece que toda vez que tento atualizar a foto preciso deslogar da sessão
e logar de novo com o usuario para que a foto atualize na tela, ja tentei de diversas
formas e ainda não consegui fazer a foto atualizar automaticamente , posto abaixo o código
que estou utilizando

<h:panelGroup id="apercuForm" layout="block"> <p:graphicImage value="#{accountBean.image}" cache="false" width="100" height="100" id="foto" /> </h:panelGroup>

o código acima mostra a imagem na tela

<f:facet name="inline">
      <p:fileUpload fileUploadListener="#{accountBean.upload}"
       label="Procurar"
       invalidFileMessage="Somente arquivos .jpg, .png ou .gif"
       allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
       value="#{accountBean.file}" mode="advanced" skinSimple="true"
       update="panelFoto" />
</f:facet>

Esse código acima é o botão para pegar a imagem do pc e mandar pro servidor
Após pegar a foto, eu salvo ela em uma pasta no servidor depois disso tento atualizar com o seguinte código

public StreamedContent converterToImage(String caminho) {
		DefaultStreamedContent streamedContent = null;
		
		try { 
			
			// Pegando os bytes da imagem
			BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream("C:/Users/Leonardo/workspace/web/lnd2/src/main/webapp"+caminho));
			
			//Passando os bytes para um vetor de bytes
			byte[] bytes = new byte[inputStream.available()];
			
			//Lendo os bytes que estão no vetor
			inputStream.read(bytes);
			inputStream.close(); // fecho o bufferedInputStream
			
			//criando o streamedContent (criando a imagem)
			streamedContent = new DefaultStreamedContent(new ByteArrayInputStream(bytes), "image/jpg");
			return streamedContent;

		} catch (IOException e) {			
			e.printStackTrace();
			return null;
		}
	}

ele retorna a imagem para a variavel image

<h:panelGroup id="apercuForm" layout="block">
       <p:graphicImage value="#{accountBean.image}" cache="false" width="100" height="100" id="foto" />
</h:panelGroup>

porém mesmo fazendo tudo isso a imagem ainda não atualiza sem que eu deslogue e logue o usuario de novo

alguem ja trabalhou com essa ferramenta antes e sabe como fazer isso?

1 Resposta

evandro.santos

Você deu um update em panelFoto, não vi isso em seu código… Tentou update em apercuForm?

Criado 24 de agosto de 2016
Ultima resposta 13 de set. de 2016
Respostas 1
Participantes 2