Como eu recupero do banco de dados e visualizo nonavegador uma imagem .gif cadastrada no Banco de dados?
Alguem pode me dar uma ajuda?
Beijinhos…
Como eu recupero do banco de dados e visualizo nonavegador uma imagem .gif cadastrada no Banco de dados?
Alguem pode me dar uma ajuda?
Beijinhos…
[color=“blue”]Oi pessoal !!! Olha Pat isso depende, se você cadastrou o local onde esta a imagem é bem simples, basta fazer uma consulta ao banco de dados e jogar o resultado numa variável String pra você poder acessar… agora se você inseriu a imagem no banco de dados aí depende de qual você esta usando. :!:
Você podia colocar mais detalhes sobre a estrutura da sua aplicação, tipo: banco de dados e como você esta acessando o mesmo. Assim fica mais facil de ajudar. :roll:
Valeu pessoal !!!
SkyBlue[/color]
Estou desenvolvendo uma aplicação que grava e recupera imagens do banco Oracle. Para exibir a imagem você precisa de um servlet, action (struts) ou jsp que:
/** getphoto.jsp codigo fonte <em>/
<%<a class="mention" href="/u/page">@page</a> import="java.sql.</em>,oracle.jdbc.*"%>
<html>
<head>
<title>jsp1</title>
</head>
<body bgcolor="#ffffff">
<table width=“781” border=“2”>
<tr>
<td width=“83” bgcolor="#C0C0C0">
<b>PhotoId</b>
</td>
<td width=“450” bgcolor="#C0C0C0">
<b>Description</b>
</td>
<td width=“228” bgcolor="#C0C0C0">
<b>Photo Image</b>
</td>
</tr>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection(“jdbc:oracle:thin:@itas:1521:oraITAS”,“yourDbUserId”,“yourDbPassword”);
stmt = conn.createStatement();
rset = stmt.executeQuery(“select photo_id,photo_description from photo”);
while (rset.next()) {
%>
<tr>
<td width=“83”>
<%=rset.getObject(“photo_id”)%>
</td>
<td width=“450”>
<%=rset.getObject(“photo_description”)%>
</td>
<td width=“228”>
<img src=“getimage.jsp?PhotoId=<%=rset.getObject(“photo_id”)%>” width=“238” height=“228”>
</td>
</tr>
<%
}
conn.close();
%>
</table>
</body>
</html>
/** getimage.jsp codigo fonte*/
<%@ page contentType=“image/jpeg; chaoResult=iso-8859-1”
language=“java” import=“java.sql.<em>,<a href="http://java.io">java.io</a>.</em>,java.util.*”
errorPage="" %>
<%
String strConnString = null;
Connection oDbConn;
Statement oStmt;
ResultSet oResult;
String strConnection = null;
String strUserId = “c_erober”;
String strUserPwd = “sybdev99”;
String strDatabase = “oraITAS”;
String strPhotoId;
strConnString = “jdbc:odbc:” + strDatabase;
String strSql;
try {
strPhotoId = (String) request.getParameter(“PhotoId”);
strSql = “select photo_image from photo” + ( (strPhotoId==null) ? " where photo_id = ‘001’": (" where photo_id = ‘" + strPhotoId + "’") );
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
oDbConn = DriverManager.getConnection(strConnString,strUserId,strUserPwd);
response.setContentType(“image/jpeg”);
oStmt = oDbConn.createStatement();
oResult = oStmt.executeQuery(strSql);
oResult.next();
byte[] bytearray = new byte[4096];
int size=0;
InputStream sImage;
sImage = oResult.getBinaryStream(1);
response.reset();
response.setContentType(“image/jpeg”);
response.addHeader(“Content-Disposition”,“filename=getimage.jpeg”);
while((size=sImage.read(bytearray))!= -1 ) {
response.getOutputStream().write(bytearray,0,size);
}
response.flushBuffer();
sImage.close();
oDbConn.close();
} catch (SQLException ex) { ex.getMessage();
}
%>
O código acima é bem didático, mas aconselho usar servlets e não páginas jsp para abrir a conexão, fazer consulta ao banco e returnar a imagem.
Espero ter ajudado.
como eu faria isso no struts?
resgatar a imagem do banco e mostrar na web usando action do struts
bom eu tenho um form bean que possui
String cod_tipo;
String nome_tipo;
e eu gostaria de usar img_tipo
fazer um action e enviar o img_tipo
na pagina eu gostaria de usar <logic:iterator id=“tipos” name=“listatipos” >
<bean:write name=“tipos” property=“cod_tipo”>
<bean:write name=“tipos” property=“nome_tipo”>
<aqui eu queria poder colocar a imagem
tipo property=“img_tipo”>
</logic:iterator>
tem alguma forma deu conseguir isso aproveitando o action?
Estou desenvolvendo uma aplicação que grava e recupera imagens do banco Oracle. Para exibir a imagem você precisa de um servlet, action (struts) ou jsp que:
- abra uma conexão com o banco
- faça um select na imagem
- peque um stream da imagem
- sete o content do response como image/jpeg
- e retorne os bytes do stream
Na pagina jsp que vai exibir a imagem o segredo é chamar o servlet, action ou pagina jsp que retorna o conteúdo da imagem no campo src da tag html img: <img src=‘seuservlet?FotoId=id’>, passando o id da foto que será buscada no banco como parâmetro.
Segue um exemplo:/** getphoto.jsp codigo fonte <em>/ <%<a class="mention" href="/u/page">@page</a> import="java.sql.</em>,oracle.jdbc.*"%> <html> <head> <title>jsp1</title> </head> <body bgcolor="#ffffff"> <table width=“781” border=“2”> <tr> <td width=“83” bgcolor="#C0C0C0"> <b>PhotoId</b> </td> <td width=“450” bgcolor="#C0C0C0"> <b>Description</b> </td> <td width=“228” bgcolor="#C0C0C0"> <b>Photo Image</b> </td> </tr> <% Connection conn = null; Statement stmt = null; ResultSet rset = null; DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn = DriverManager.getConnection(“jdbc:oracle:thin:@itas:1521:oraITAS”,“yourDbUserId”,“yourDbPassword”); stmt = conn.createStatement(); rset = stmt.executeQuery(“select photo_id,photo_description from photo”); while (rset.next()) { %> <tr> <td width=“83”> <%=rset.getObject(“photo_id”)%> </td> <td width=“450”> <%=rset.getObject(“photo_description”)%> </td> <td width=“228”> <img src=“getimage.jsp?PhotoId=<%=rset.getObject(“photo_id”)%>” width=“238” height=“228”> </td> </tr> <% } conn.close(); %> </table> </body> </html>/** getimage.jsp codigo fonte*/
<%@ page contentType=“image/jpeg; chaoResult=iso-8859-1” language=“java” import=“java.sql.<em>,<a href="http://java.io">java.io</a>.</em>,java.util.*” errorPage="" %> <% String strConnString = null; Connection oDbConn; Statement oStmt; ResultSet oResult; String strConnection = null; String strUserId = “c_erober”; String strUserPwd = “sybdev99”; String strDatabase = “oraITAS”; String strPhotoId; strConnString = “jdbc:odbc:” + strDatabase; String strSql; try { strPhotoId = (String) request.getParameter(“PhotoId”); strSql = “select photo_image from photo” + ( (strPhotoId==null) ? " where photo_id = ‘001’": (" where photo_id = ‘" + strPhotoId + "’") );DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); oDbConn = DriverManager.getConnection(strConnString,strUserId,strUserPwd); response.setContentType(“image/jpeg”); oStmt = oDbConn.createStatement();oResult =
oStmt.executeQuery(strSql);
oResult.next();byte[] bytearray = new byte[4096]; int size=0; InputStream sImage; sImage = oResult.getBinaryStream(1); response.reset(); response.setContentType(“image/jpeg”); response.addHeader(“Content-Disposition”,“filename=getimage.jpeg”); while((size=sImage.read(bytearray))!= -1 ) { response.getOutputStream().write(bytearray,0,size); } response.flushBuffer(); sImage.close(); oDbConn.close(); } catch (SQLException ex) { ex.getMessage(); } %>O código acima é bem didático, mas aconselho usar servlets e não páginas jsp para abrir a conexão, fazer consulta ao banco e returnar a imagem.
Espero ter ajudado.
god bless you !!
mas como eu faço para mostrar varias imagens em uma tabela no jsp , pegando a imagem de uma pasta do servidor???