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á 