从mysql中获取多个图像并显示在表格上

时间:2014-01-31 11:25:28

标签: mysql database image jsp

我想从mysql表中获取多个图像并将其显示在桌面上。

我的代码有什么问题? 这是我的代码

    <%@ page import="java.sql.*"%>

<%@ page import="java.io.*"%>

<%
response.setContentType("image/gif");
OutputStream o = response.getOutputStream();

Blob image = null;
//long   imgLen;
Connection con = null;

byte[ ] imgData = null ;

Statement stmt = null;

ResultSet rs = null;

try 
{

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/document","root","root");

stmt = con.createStatement();

rs = stmt.executeQuery("select * from document_upload");
%>
<html>
<body>
<table border=2>
<tr>
<td>img
</td>

<%
while(rs.next()) 
{
    %>
    <td>

    <%
    image = rs.getBlob(1);
    imgData = image.getBytes(1,(int)image.length());
    o.write(imgData);%></td></tr></table>
    <%
} 

o.close();

} catch (Exception e)
{

out.println("Unable To Display image");

out.println("Image Display Error=" + e.getMessage());



}


%>

我遇到的问题是它一次只显示一个图像。 我试图在while循环中添加表标签但仍然存在问题。 图像以层叠的形式显示,如...

1 个答案:

答案 0 :(得分:0)

  

图像以层叠的形式显示,如...

问题在于你的基本html结构。再看看你的while循环,每次循环while循环时,你关闭你的行和表。你需要从while循环中关闭行和表。

这应该解决它:

  <table border=2>
   <tr>
    <td>img</td>        
    <%
    while(rs.next()){
    %>
    <td>    
    <%
        image = rs.getBlob(1);
        imgData = image.getBytes(1,(int)image.length());
        o.write(imgData);
    %>
   </td>
    <%
     }    
   %>
 </tr>
</table>