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.
Carregar imagem apartir de uma pasta
3 Respostas
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+

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
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.