Olá pessoal estou fazendo um sistemas e gostaria que a minha aplicação tivesse a opção do usuário inserir a sua foto, e cadastrar no banco e depois em uma consulta poder visualizar a sua foto.
Estou aguardando a ajuda…
Formulário com foto.. Me ajudem
5 Respostas
É bem simples, geralmente você armazena uma foto em um banco de dados como tipo BLOB que é a ideia de bytes …
No JPA ficaria algo do tipo
@Lob
private byte[] foto;
Dependendo da aplicação aconselho apenas armazenar o “caminho” da foto no servidor , geralmente o gargalo de sistemas web está no banco de dados.
No caso , em JSF você pode fazer o upload do arquivo assim.
xhtml
<p:fileUpload id="fudSelecionarFotos"
fileUploadListener="#{albumMB.selecionarFotos}"
auto="true"
style="font-size: 15px"
label="Selecionar"
update="dtFotos ,menssagensAlbum"/>
java
public void selecionarFotos(FileUploadEvent event) throws IOException {
UploadedFile uf = event.getFile();
String nomeArquivo = uf.getFileName();
InputStream is = null;
Foto foto = new Foto();
try {
is = uf.getInputstream();
//Populo o objeto Foto
Integer tamanhoMax = 50;
Integer tamanhoArq = nomeArquivo.length();
String nomeArquivoCompacto = null;
if (tamanhoArq > tamanhoMax ) {
nomeArquivoCompacto = nomeArquivo.substring(0, tamanhoMax -1);
}else {
nomeArquivoCompacto = nomeArquivo;
}
foto.setNome(nomeArquivoCompacto);
foto.setFoto(uf.getContents());
foto.setPublicado(Publicado.NAO);
fotos.add(foto);
JSFUtil.enviarMenssagemSucesso("Upload realizado com sucesso.");
} catch (Exception e) {
e.printStackTrace();
JSFUtil.enviarMenssagemErro("Erro ao realizar o Upload.");
} finally {
try {
is.close();
} catch (IOException ex) {
ex.printStackTrace();
JSFUtil.enviarMenssagemErro("Erro ao realizar o Upload.");
}
}
O primefaces tem um componente para capturar diretamente da camera
http://www.primefaces.org/showcase/ui/photoCam.jsf
Abraços
Acho que a primeira pergunta deveria ser… que tecnologia você está utilizando?
E a segunda qual tecnologia você conhece?
Desculpa pessoal, não dei muitos detalhes, mas estou desenvolvendo uma aplicação em java de descktop, j2se. E qual tipo de campo que eu deixo, para o usuario fazer o upload da imagem e visualizala no formulario. E em seguida gravala no banco de dados junto de seus dados etc…
Apesar de eu ter cidado como fazer o upload para Web, a parte do banco de dados não muda…
Se vc tiver usando JPA ou JDBC no banco você vai armazenar bytes…
Ou seja vc pega o inputstream da imagem e transforma em bytes…
Para você pegar essa imagem em swing por exemplo , você pode usar o:
JFileChooser chooser = new JFileChooser();
Em jsp tem o jfilechooser.
Ele vai criar um campo para você escolher a imagem.