Boa tarde galera…
Então, o processo é o seguinte; quando for feito o upload de uma imagem, será possível visualizar sua miniatura através do "<p:graphicImage"… até ai td bem.
O problema esta no momento de mostrar a imagem no lightbox, que é ativado ao clicar na miniatura. Não consigo encontrar o caminho de origem para exibir, ou melhor, não sei como atribuir o caminho corretamente para a exibição, que colocamos no “value” do <h:outputLink …
Então, a ideia seria pegar o caminho original do “file”, em qualquer pasta que possa ser feito o upload de uma imagem, para coloca-lo no value do outpulink, possibilitando a exibição da imagem no lightbox.
Alguém sabe como posso fazer?
Obrigado.
...
<p:lightBox id="photoBox"
rendered="#{produtoBean.filePath!=null?'true':'false'}">
<h:outputLink value="#{produtoBean.filePath}" title="">
<p:graphicImage value="#{produtoBean.imagemMostrada}"
style="border: solid 4px #E8E8E8;" cache="false" id="photo"
width="52" height="52" />
</h:outputLink>
</p:lightBox>
...
public void handleFileUpload(FileUploadEvent event) throws IOException {
FacesMessage msg = new FacesMessage("Sucesso", event.getFile()
.getFileName() + " foi adicionada.");
FacesContext.getCurrentInstance().addMessage(null, msg);
ByteArrayInputStream ais;
InputStream is = event.getFile().getInputstream();
byte[] bytes = IOUtils.toByteArray(is);
ais = new ByteArrayInputStream(bytes);
imagemMostrada = new DefaultStreamedContent(ais, "image");
String nomeArquivo = event.getFile().getFileName();
FacesContext facesContext = FacesContext.getCurrentInstance();
ServletContext scontext = (ServletContext) facesContext.getExternalContext().getContext();
String ext = nomeArquivo.substring(nomeArquivo.lastIndexOf('.') + 1);
nomeArquivo = "teste."+ext;
String arquivoDir = ?;
setFilePath(arquivoDir); // justamente aqui, queria pegar a imagem do diretório de origem e joga-la no outputlink do lightbox para exibir.