2014-01-31 2 views
0

Я хочу получить несколько изображений из таблицы mysql и показать их на таблице.Извлечь несколько изображений из 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()); 



} 


%> 

Я имею проблему, что его показ только один файл одновременно. Я попытался добавить теги таблицы во время цикла, но проблема остается. Изображения отображаются в слоях, является один за другим, как ..

ответ

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> 
Смежные вопросы