Como capturar foto do banco e mostrar em 1 jsp?

0 respostas
maLLuKO

Olá pessoal, estou usando o banco postgres para fazer isso. Já consegui
fazer o upload da foto lá dentro do banco, agora queria saber
como faz para mostrar a foto que ta lá em um jsp.

Vou por aqui como tentei e não consegui:

-----------------------------JPGManeger.java------------------ ------------

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageDecoder;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

import java.awt.image.BufferedImage;

import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ByteArrayInputStream;


/**
 * Converter uma sequencia de bytes em JPGE
 */

public class JPGManeger {
   public static void encodeJPG(OutputStream out, byte[] image) throws IOException {
   
   
   int buffer = image.length;
   InputStream fs = new ByteArrayInputStream(image);
   JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(fs);
   BufferedImage bImage = decoder.decodeAsBufferedImage();
   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
   encoder.encode(bImage);
   fs.close();
   fs = null;
   encoder = null;
   bImage = null;       
       
   }
}

----------------------- exibirImagem.jsp -----------------------

<%@page import="java.lang.*, java.sql.*"%>
   
    <%
        String driver = "org.postgresql.Driver";
        String url = "jdbc:postgresql://localhost:5432/";   
        String user = "usuario";
        String pass = "senha";
   
        try {
       
            int ident = 1;
       
            //carregando o driver jdbc
            Class.forName(driver);
            //estabelecendo conexao
            Connection con = DriverManager.getConnection(url,user,pass);
            System.out.println(con.isClosed());
           
            String sql = "select * from uploads where id =" + ident;
            // criando a sentença de execucao de comandos sql
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            if (rs.next()) {
           
           //testar se entrou no if
           System.out.println("transformando");
           
              Blob blob = rs.getBlob("binaryfile");
              JPGManeger.encodeJPG(response.getOutputStream(), blob.getBytes(1, (int)blob.length()) );
                     
           }
       } catch (Exception e) {
            %> Erro encontrado <%
         }
   
   
    %>

no ident eu usei 1 só para testar. Só tem uma foto no banco de dados.

Segundo 1 tutorial que peguei… para exibir a foto seria /exibirImagem.jsp?ident=x
onde x é o numero da foto me parece…

E ai… o que vocês acham?
Será que alguem teria outra soluçao para me passar?

Obrigado desde já :slight_smile:

Criado 15 de abril de 2006
Respostas 0
Participantes 1