http://expert.csdn.net/Expert/topic/876/876147.xml?temp=.9359247

解决方案 »

  1.   

    To:  zxhong(红) :
       你好!我按照你的提示抄了如下代码,还是不行,网页执行没有任何显示
    还望多多指教<%@ page language="java" import="java.sql.*,java.util.*"%>
    <%
    String image_id ="3";
    try
       {
        Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
        String url="jdbc:oracle:thin:@192.168.100.1:1521:test";
        String user="test";
        String password="test";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT blob_column FROM UTL_LOB_TEST WHERE id = " + image_id);
        if (rs.next())
           {
            String dim_image = rs.getString("filename");
            byte [] blocco = rs.getBytes("tfile");
            response.setContentType("image/*");
    javax.servlet.ServletOutputStream op = response.getOutputStream();
            for(int i=0;i<blocco.length;i++)
             {op.write(blocco[i]);}
           }
        //op.close();
        rs.close();
        stmt.close();
        conn.close();
       }catch(Exception e) {
            }
    %>
      

  2.   

    ResultSet rs = stmt.executeQuery("SELECT blob_column FROM UTL_LOB_TEST WHERE id = " + image_id);
        if (rs.next())
           {
            String dim_image = rs.getString("filename");
            byte [] blocco = rs.getBytes("tfile");
            response.setContentType("image/*");
    javax.servlet.ServletOutputStream op = response.getOutputStream();
            for(int i=0;i<blocco.length;i++)
             {op.write(blocco[i]);}
           }
        你明明select的是blob_column 结果get的却是filename
       怎么可以啊!
      

  3.   

    我改了一下,还是不行啊,页面上什么也没有!帮帮忙啊!<%@ page language="java" import="java.sql.*,java.util.*"%>
    <%
    String image_id ="3";
    try
       {
        Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
        String url="jdbc:oracle:thin:@192.168.100.1:1521:test";
        String user="test";
        String password="test";
        Connection conn= DriverManager.getConnection(url,user,password);
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT blob_column FROM UTL_LOB_TEST WHERE id = " + image_id);
        if (rs.next())
           {
            String dim_image = rs.getString("blob_column");
            byte [] blocco = rs.getBytes("UTL_LOB_TEST");
            response.setContentType("image/jpeg");
    javax.servlet.ServletOutputStream op = response.getOutputStream();
            for(int i=0;i<blocco.length;i++)
             {op.write(blocco[i]);}
           }
        //op.close();
        rs.close();
        stmt.close();
        conn.close();
       }catch(Exception e) {
            }
    %>
      

  4.   

    rs.getBytes("UTL_LOB_TEST");
    这个没改,取一个,怎能get两个
        ResultSet rs = stmt.executeQuery("SELECT blob_column,tfile FROM UTL_LOB_TEST WHERE id = " + image_id);
        
      

  5.   

    我改了,还是不行,下面的代码也是从CSDN上COPY来的,试了,也行不通
    谁能帮我?
    我要把存储在ORACLE BLOB字段里面的图片显示在网页上,谁帮帮我?!感谢!
    <%@ page language="java" import="java.sql.*,java.util.*"%>
    <%
    String sql = "select blob_column from utl_lob_test";
    Statement stmt = null;
    ResultSet rs = null;
    Connection conn = null;
    try {
         Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
         String url="jdbc:oracle:thin:@192.168.100.1:1521:test";
         String user="system";
         String password="manager";
         conn = DriverManager.getConnection(url,user,password);
         stmt = conn.createStatement();
         rs = stmt.executeQuery(sql);
        } catch (SQLException e)
           {System.out.println(e);}
    try {
         if (rs.next())
            {
             response.setContentType("image/jpg");
             ServletOutputStream sout = response.getOutputStream();
             byte [] image =rs.getBytes(1);
             sout.write(image);
             sout.flush();
             sout.close();
            }
        } catch (Exception e) 
           {System.out.println(e);
            PrintWriter toClient = response.getWriter();
            response.setContentType("text/html;charset=gb2312");
            toClient.write("ERROR");
            toClient.close();
           }finally {
                stmt.close();
                conn.close();
            }
    %>
      

  6.   

    <img src="xxx.jsp">
    xxx.jsp为你的上面显示图片代码的文件名
      

  7.   

    to:topmint(秋景) 
        我按照你的方法做了,还是什么也看不到,只是在页面上有一个叉
      

  8.   

    你说的对,但我现在没时间消化,因为我对JSP显示ORACLE里面的BLOB图片
    的概念一无所知,只会改改IP,SELECT语句,
    希望能得到一个完整的真正管用的示例代码,然后才能根据正确的思路慢慢消化。我在ORACLE版回答问题,一般也会把概念讲清楚的,要让别人看得懂,真正能学会。还是非常感谢你!
      

  9.   

    哦。
    你的id是什么类型?
    建议:id='"+id+"'(String)
          id="+id+"(int,float...)
      

  10.   

    我的ID 是NUMBER(1)
    我的SQL语句就直接这样写了
    String sql = "select blob_column from utl_lob_test where id=3";
    其中 blob_column是一个BLOB字段,存储了一张JPG图片