我想从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循环中添加表标签但仍然存在问题。 图像以层叠的形式显示,如...
答案 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>