我是把图片存到了数据库里,类型是mediumblob,我的实体bean的字段类型是byte[],请问怎么把图片从数据库里取出来显示到页面啊?

解决方案 »

  1.   

    解析二进制流吧。不能用通常的<img src 
      

  2.   

    取出数据,转换成流,然后在页面展现就可以了
    通过struts2 很好实现
      

  3.   

    <s:property value="%{#XXX.image}" />如果我这样调图片字段的话页面显示是这样的[B@161100c
      

  4.   

     <result name="viewImage" type="stream">
      <param name="contentType">image/jpeg</param>
      <param name="inputName">imageStream</param>
      <param name="bufferSize">1024</param>
           </result>
    jsp:
    <img src="">
    就可以了
      

  5.   

    创建一个servlet专门将二进制流转换成图片
    页面<img src=指向servlet
      

  6.   


    <img src="***_viewImage.cgi?****"> 
    指向一个方法,该方法返回一个流。struts2会自动把流转换成图片。
    不会出现你的问题的
      

  7.   

    <img src="***_viewImage.cgi?****"> 
    perl啊
      

  8.   

    我本来想建议你到我的空间去看下的 无奈今天早上百度崩了..Servlet输出流 然后直接访问那个SERVLET 具体步骤
      

  9.   

    建一个action处理二进制流,在页面用<img src="action的名字"/> 就可以得到你的图片了。
    <action name="validImage" class="indexAction" method="imageCodeAction">
    <result type="stream" name="success">
    <param name="contentType">image/jpeg</param>   
                <!-- 指定提供InputStream的filed name -->   
                <param name="inputName">imageStream</param>   
                <param name="bufferSize">1024</param>    </result>
    </action>
      

  10.   

    我没用上配置文件,现在图片显示出来了,原来是我DAO的问题,一直返回的都是String类型,但是现在又有个新问题,虽然程序运行没问题,图片也能出来,但是老师报一个错误,不知道怎么解决,好像是与服务器断开连接还是怎么的java.net.SocketException: Connection reset by peer: socket write error
      

  11.   

    我没做try catch,难道是这个原因?
      

  12.   

    做了个try catch还是不行啊,恐怖吗?多帅啊,我们老大
      

  13.   

    java.net.SocketException: Connection reset by peer: socket write error 
    这个页面有好多的东西,是不是输出的内容超过了默认值,于是修改JSP头为:    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"  buffer="800k"%>这样就OK了。以上为google所得!
      

  14.   

    报错这个 Page directive: invalid value for buffer
      

  15.   

    你写一个servlet然后,在方法中写如下代码:
    response.setContentType("image/*");
    ServletOutputStream sos = response.getOutputStream();
    sos.write(b);
                    sos.close();
    fis.close();
    b是你从数据库里读出来的字节数组。
    再然后,你用<img src="你的servletMaping"/>就可以了。
      

  16.   

    没有用,刚才发现个问题,IE报错,google不报
      

  17.   

    刚又测了一下,我的机器是IE6报错,旁边机器IE8不报了,有解决办法吗?还是不需要解决了
      

  18.   

    难道是页面的问题?<img src="<s:url action="image"></s:url>" />
    这么写不支持?