Carregar imagem apartir de uma pasta

3 respostas
P

No meu sistema, teremos um estrutura de pasta, da seguinte forma. Existem pastas de 0 a 9. A imagem do cara, recebe como nome o número do CPF dele. Em pastas com números 6, estão todos os CPF’s que comecem com seis. O que eu quero é o seguinte. Fazer um código ou classe única, que para vez e em cada página que eu preciso carregar a foto do cara(praticamente em todas, eu deva carregar esse código(um template). Para buscar eu tenho que fazer, pegar o primeiro número do cpf do usuário logado, vejo a pasta referente aquele número e então faço a pesquisa pelo cpf dele e retorno a imagem(foto) e carrego em minha página. Gostaria de um caminho, uma luz para fazer isso. Eu guardo no banco apenas o caminho da imagem. A imagem fica nas pastas.

3 Respostas

tucano

o texto ficou meio extenso e embolado…
… mas tentamos responder, hehehe

pelo que entendi tu tem guardado em banco o endereço das fotos né?

é um sistema web ou desktop??

web é barbadinha…

desktop… depende da interface grafica que o sistema foi desenvolvido…

abraço!
t+
:wink:

getAdicted

Olá pjava,

Acredito que o seguinte exemplo pode lhe ajudar:

Imagem.java:

@Entity
public class Imagem implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    private String nome;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

}
public void Upload(FileUploadEvent event) throws ServletException, IOException {

        Imagem imagem = new Imagem();
        imagem.setNome(event.getFile().getFileName());

        Repository img = new Repository();
        img.adiciona(imagem);


        byte[] conteudo = event.getFile().getContents();
        String caminho = "C:\\temp\\" + event.getFile().getFileName();
        FileOutputStream fos = new FileOutputStream(caminho);
        fos.write(conteudo);   
        fos.close();

    }

Eu utilizei JSF 2, JPA+Hibernate e Primefaces.

O método acima é chamado em um página JSF através do seguinte componente do Primefaces: http://www.primefaces.org/showcase-labs/ui/fileUploadAuto.jsf

A página ficou assim:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <p:fileUpload auto="true" sizeLimit="1000000" widgetVar="uploader" customUI="true" 
                      fileUploadListener="#{blahBean.Upload}"  
                      uploadLabel="imagens/browse.png"
                      cancelLabel="imagens/cancel.png"
                      allowTypes="*.jpg;*.png;*.gif;*.mp3;*.avi;" 
                      />
    </h:body>
</html>

[EDIT]
Faltou a parte da persistência, Repository.java:

public class Repository {

    private EntityManager entityManager;

    public Repository(EntityManager entityManager) {
        this.entityManager = entityManager;
    }

    public void adiciona(Imagem imagem) {
        this.entityManager.persist(imagem);
        this.entityManager.flush();
    }

    public List<Imagem> getImagens() {
        Query query = this.entityManager.createQuery("select i from Imagem as i");
        return query.getResultList();
    }
}

[/EDIT]

Quanto ao ponto do CPF, aparentemente, me parece bem simples, qualquer dúvida posta aqui.

[]'s

P

Belê, até aí tudo bem. Meu problema é que a foto a ser carregada é do usuário logoda(a idprofessor referente ao login em questão). Essa é minha dúvida. Aí sim, fazer um select(HQL) passando como parametro o id do usuário logado. Tô com dúvida quanto a pegar o usuário logado.

Criado 6 de maio de 2011
Ultima resposta 8 de mai. de 2011
Respostas 3
Participantes 3