graphicImage does not render: • pfdrid_c = true

0

I'm trying to display an image with, but it's not appearing in any browser.

On my page I'll call the image mode:

<p:graphicImage value="/upload/#{desap.foto}" height="140"
                                width="140" />

and when I compile and put in the preview element it appears as follows:

src="/ajudeaencontrar/upload/444?pfdrid_c=true"

... Editing

This is how my ManagedBean is.

@ManagedBean(name = "desapBean")
@SessionScoped

public class CadastroDesaparecidoBean {

private Desaparecido desaparecido;
private DescricaoDesaparecido descricao;
private List<Desaparecido> listaDesaparecido;
private String situacao = null;

// Pega o usuário logado
@ManagedProperty(value = "#{uBean.usuario}")
private Usuario responsavel;

private UploadArquivo arquivo = new UploadArquivo();

private boolean skip;
private boolean isdeficiencia = false;
private boolean booEditar = false;

@PostConstruct
public void inicializar() {

    try {
        limpar();
        listaDesaparecido = new DesaparecidoJPA()
                .buscarDesaparecidosPorIdResponsavel2(responsavel);

    } catch (Exception e) {
        System.out.println("Não foi possível resgatar os dados");
        e.printStackTrace();
    }
}

public void limpar() {
    desaparecido = new Desaparecido();
    descricao = new DescricaoDesaparecido();
    arquivo = new UploadArquivo();
}
...

/*
 * Metodo para realizar o upload de uma foto Os tipos de dados sao validados
 * no Primefaces
 */
public void uploadAction(FileUploadEvent event) {
    FacesContext fc = FacesContext.getCurrentInstance();
    try {
        this.arquivo.fileUpload(event, ".jpg");
        this.desaparecido.setFoto(this.arquivo.getNome());

        fc.addMessage("formcaddesap", new FacesMessage("", event.getFile()
                .getFileName() + " foi carregada."));

    } catch (Exception ex) {
        fc.addMessage("formcaddesap", new FacesMessage("", event.getFile()
                .getFileName() + " não foi carregada."));
    }
}

public String cadastrar() {

    FacesContext fc = FacesContext.getCurrentInstance();
    try {

...

        new DesaparecidoJPA().gravar(desaparecido);

        this.arquivo.gravar();

        FacesUtil.addSuccessMessage(desaparecido.getNome()
                + " cadastrado com sucesso.");

        System.out.println("arquivo gravado: " + arquivo.getNome());

        inicializar();

    } catch (Exception e) {
        e.printStackTrace();

        FacesUtil.addSuccessMessage("Dados não foram armazenados!");
    }

    return "/admin/painelresp?faces-redirect=true";
}

}

This is the File Upload Class:

public class UploadArquivo {

private String caminho;
private byte[] arquivo;
private String nome;

public UploadArquivo() {
}

public String getNome() {
    return nome;
}

public String getRealPath() {

    FacesContext aFacesContext = FacesContext.getCurrentInstance();
    ServletContext context = (ServletContext) aFacesContext
            .getExternalContext().getContext();
    //Caminho dentro do projeto no servidor - onde ficarao salvas. 
    return context.getRealPath("/WEB-INF/upload/");
}

public void fileUpload(FileUploadEvent event, String tipo) throws Exception {
    this.nome = new java.util.Date().getTime() + "_"
            + event.getFile().getSize() + tipo;

    this.arquivo = event.getFile().getContents();
    this.caminho = getRealPath() + getNome();

    File file = new File(getRealPath());
    file.mkdirs();

    System.out.println("caminho: " + caminho);
    System.out.println("Nome: " + getNome());
}

public void gravar() {

    try {

        FileOutputStream fos;
        fos = new FileOutputStream(this.caminho);
        fos.write(this.arquivo);
        fos.close();

    } catch (Exception ex) {
        System.out.println(ex);
    }

}
}

This is the section of the Bean that loads the list to display in the Datagrid:

@ManagedBean(name = "api")
@SessionScoped
public class AplicacaoBean {

private Desaparecido desaparecido;
private DescricaoDesaparecido descricao;
private List<Desaparecido> lista;
private List<Desaparecido> resultados = new ArrayList<Desaparecido>();
    @PostConstruct
public void inicializar() {
     try {
          desaparecido = new Desaparecido();
          lista = new DesaparecidoJPA().listar();
     } catch (Exception e) {
          e.printStackTrace();
     }
}
public List<Desaparecido> getLista() {
    return lista;
}
//Getters and Setters...

The photo attribute of the Disappeared Entity is of type String.

The photo is being saved correctly on the server, I put it to print the path and it shows: C:\workspace\Java EE SE\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\ajudeaencontrar\WEB-INF\upload

Does anyone have any idea how to solve this? I want to display the photo for the user. I already looked for it here in the site, but I did not find anything specific.

    
asked by anonymous 09.11.2015 / 17:44

0 answers