日期:2014-05-17  浏览次数:20572 次

一个jsp页面如何读取oracle的多张图片
我的代码如下:
    InputStream in[] = new InputStream[100];
 
    String sql="select * from Officeinsp_accessory WHERE ID = " + image_id;
    PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(); 
int i=0;
while(rs.next()){ 
 in[i] = rs.getBlob("BINDARYFILE").getBinaryStream();
 i++;
}

   
    response.reset(); 
response.setContentType("image/jpeg"); 

byte[] b = new byte[1024]; 
int len; 
for(int j=0;j<i;j++){
while((len=in[j].read(b)) >0) 
response.getOutputStream().write(b,0,len); 
}
 
for(int k=0;k<i;k++){
in[k].close();
}
    out.clear();
    out=pageContext.pushBody();
    
    rs.close();
stmt.close();
conn.close();
但是运行出来,只能显示第一张图片,有什么办法能够显示所有图片吗,在数据库中
String sql="select * from Officeinsp_accessory WHERE ID = " + image_id;
这句话是对应四张图片的,我要怎么让这四张图片都显示呢?

------解决方案--------------------
我觉得你还是存图片路径,然后读取所有图片路径放入到list中传递给前端页面方便!
或者你试试在每次传输完一个图片数据流后flush一下!
------解决方案--------------------
楼主,图片格式的文件是有文件头的,它指定了文件的宽高等属性,超过这个范围的,会被当作无效数据丢弃


------解决方案--------------------
你这样肯定只能返回最后一张了,前台可以传一个id过来,后台根据id返回某一个图片