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

获取流数据后再网页输出,总是提示下载
Java code

ServletOutputStream op = response.getOutputStream();
    JszyDao jd=new JszyDao();
    int  fid=0;
    try
    {
     fid=Integer.parseInt(request.getParameter("fid"));
    }catch(Exception ex){
     out.print("数据不存在.");
     return;
    }
    BufferedInputStream is=jd.getJszyIo(fid);
    try{
    int len=0; 
    byte[] buf=new byte[10*1024]; 
    while((len= is.read(buf))!=-1) { 
     op.write(buf, 0, len); 
    } 
     is.close();
     op.flush();
     op.close();
    }catch(Exception ex){
      ex.printStackTrace();
    }




代码如上:
问题是这样的,当前有个数据库(数据库是老早CS系统VB开发设计的),现在需要公用这个库。
数据库中有个字段,是用流存储的,现在需要将里面的值显示在页面上,里面可能有图片
用上面的方法获取后,如果我没有在页面上加编码方式,输出的和数据库中的字符是一样的(这个字段是类型是TEXT类型),如果加了编码则提示我下载文件,下载得文件是RTF格式的。下载的到的这个文件里的数据是正确的。
请问,如何保证数据在页面上显示正确呢?

流学的太菜。各位大侠见笑了。

------解决方案--------------------
如果是图片的话,可以写个servlet,将它的输出流作为图片的src,实现类似于图片验证码
如果存的不是图片,我就没有实践过啦
------解决方案--------------------
你可以拿取文件得前几个字节来判断是否是合法得图片文件....具体得对照关系。你网上找下吧