我用jsp+mysql从数据库中读取多副图片,但每次都只能读取一副图片,而且是数据库中的第一副图片,其余图片不能输出,请问是怎么回事,请大虾指点一下,不胜感激。还有读取图片后位置怎么控制!
代码如下:
sql="select * from picture where id=2";
rs=stmt.executeQuery(sql);
while(rs.next()) {
in=rs.getBinaryStream(4);
response.reset();//返回在流中被标记过的位置
int len=in.available();//得到文件大小
OutputStream toClient=response.getOutputStream();
byte[] P_Buf= new byte[len];
i=in.read(P_Buf);
while(i!=-1)
{
toClient.write(P_Buf,0,i);
}
out.println(len);
in.close();
toClient.flush();//强制清出缓冲区
toClient.close();
}
我感觉输出语句toClient.write(P_Buf,0,i);有问题,但是不知道有什么别的输出语句,而且图片位置不好控制!
代码如下:
sql="select * from picture where id=2";
rs=stmt.executeQuery(sql);
while(rs.next()) {
in=rs.getBinaryStream(4);
response.reset();//返回在流中被标记过的位置
int len=in.available();//得到文件大小
OutputStream toClient=response.getOutputStream();
byte[] P_Buf= new byte[len];
i=in.read(P_Buf);
while(i!=-1)
{
toClient.write(P_Buf,0,i);
}
out.println(len);
in.close();
toClient.flush();//强制清出缓冲区
toClient.close();
}
我感觉输出语句toClient.write(P_Buf,0,i);有问题,但是不知道有什么别的输出语句,而且图片位置不好控制!
toClient.write(P_Buf,0,i);
}试试
怎么有时出现这个问题!
不知道怎么回事
while((i=in.read(P_Buf)) != -1){
toClient.write(P_Buf,ioffset ,i);
ioffset +=i;
}试试