请问下我在数据库以二进制的形式储存照片
在读取的时候 为什么有一张照片不能读取。。而别的照片都可以被读取
问题是?
这张照片在jsp页面上无法读取到 而在PDF格式下的报表中可以被读取到
这是为什么?是照片格式问题,还是分辨率问题?还是其他原因

解决方案 »

  1.   

    应该是格式的问题,可能网页显示不支持图片格式,比如tif
    你在jsp中是如何显示图片的?
      

  2.   

    <div class="user_pic"><img src="<ww:url value='/examineetest/showExamineePic.action?id=%{model.id}'/>" width="118" height="139"></div>
      

  3.   


    /**
     * 显示照片。
     * 
     * @return
     * @throws Exception
     */
    public InputStream getPicStream() throws Exception {
    if (model.getPicture() != null) {
    return model.getPicture().getBinaryStream();
    } else {
    return new FileInputStream(ServletActionContext.getServletContext().getRealPath("/images/onlinetest/user_pic.gif"));
    }
    }
      

  4.   

    没看明白,你的图片到底是从数据库读出来的,还是从硬盘读取的return new FileInputStream(ServletActionContext.getServletContext().getRealPath("/images/onlinetest/user_pic.gif"));
      

  5.   

     数据库  系统封装的很死  
    很多东西在配置文件中<action name="showExamineePic" class="tExamineeAction">
    <result name="default" type="stream">
    <param name="ContentType">application/image</param>
    <param name="inputName">picStream</param>
    <param name="bufferSize">4096</param>
    </result>
    </action>
      

  6.   

    从代码上看不去什么问题,你把图片从数据库读取出来保存到本地,然后用浏览器打开这个图片,看能不能正常显示?如果这样也不能显示的话,就确定是图片格式的问题,如果用图片浏览器都不能显示,那根本就是存储的问题了
    还有就是如果是gif图片,你用jpg做扩展名,也是不能在浏览器中显示的
      

  7.   

    PDF可以将二进制INFO转成相应显示格式。直接显示图片和<param name="ContentType">application/image</param> 这个有关。一般用:
    response.setContentType("image/jpeg");
    response.getOutputStream().write(byte[]));这样就兼容jpeg,gif,jpg等格式。