我在JSP中想读取sql2000中image类型字段的图片,用下面的代码实现了,可是在网络访问的时候很慢,而且占用约20%的网络带宽,不知道是什么原因,请各位指点。String sql = "select * from data_yyry where id = ? ";
testimg.setParam(param);
ResultSet rs = testimg.select(sql);
if(rs.next())
{
sout = response.getOutputStream();

in = rs.getBinaryStream("pic_bin");

conn.close();

byte b[] = new byte[1];

for(i = in.read(b); i != -1;) 
{
sout.write(b);//将缓冲区的输入输出到页面 
in.read(b);
}

sout.flush();//输入完毕,清除缓冲 
sout.close();
}

解决方案 »

  1.   


    if(rs.next)
    {
        sout = response.getOutputStream(); 
        Blob blob = rs.getBinaryStream("pic_bin"); 
        InputStream inStream = blob.getBinaryStream();    long nLen = blob.length();
        byte[] buff = new byte[nLen];
        inStream.read(buff);    sout.write(buff);    
        sout.close();
        conn.close();
    }
    若需要直接输出页面,需要设置http消息头内型,如下
    response.setContentType("image/jpeg");
    这是针对jpg图片的内型,其他图片自己查找http中定义的Mime