Formulário com foto.. Me ajudem

5 respostas
iurysilva92

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…

5 Respostas

E

É 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

Hebert_Coelho

Acho que a primeira pergunta deveria ser… que tecnologia você está utilizando?

E a segunda qual tecnologia você conhece?

iurysilva92

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…

E

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();

lele_vader

Em jsp tem o jfilechooser.
Ele vai criar um campo para você escolher a imagem.

Criado 26 de fevereiro de 2013
Ultima resposta 26 de fev. de 2013
Respostas 5
Participantes 4