2011-07-28 8 views
1
//when i display images in jsp page this error is showing... 

//The image “http://localhost:8080/TestProject/blobrtv1.jsp?n=vipi” cannot be displayed 

//because it contains errors. 

//my code is below.... 

    <%@page import="java.sql.*" %> 

<%@page import="java.io.*" %> 

<%!Connection con; 

    Statement stmt; 

    ResultSet rs7;%> 


<% String name = request.getParameter("n"); 

      out.println("Name" + name); 

      try 

      { 
       byte b; 

       byte imgData[] = null; 

       Blob image; 


       Class.forName("com.mysql.jdbc.Driver"); 

       con = DriverManager.getConnection("jdbc:mysql://localhost:3306/customer", 

"root", "root"); 

       stmt = con.createStatement(); 

       rs7 = stmt.executeQuery("SELECT (cusPic) from cusinfo where cusName='" + 

name + "'"); 
       if (rs7.next()) 

       { 
        out.println("cheking if loop\n"); 

        image = rs7.getBlob(1); 

        out.println("\nImage is "+image); 

        imgData = image.getBytes(1, (int) image.length()); 

        out.println("\nImgData is"+imgData); 

       } else 

       { 
        out.println("Display Blob Example"); 

        out.println("image not found for given id>"); 

        return; 
       } 
       // display the image 

       response.setContentType("image/jpg"); 

       OutputStream o = response.getOutputStream(); 

       o.write(imgData); 
%> 


<% 
       o.flush(); 

       o.close(); 

      } catch (Exception e) 

      { 
       out.println("Unable To Display image"); 

       out.println("Image Display Error=" + e.getMessage()); 

       return; 

      } finally 
      { 
       try 
       { 
        rs7.close(); 

        stmt.close(); 

        con.close(); 

       } catch (SQLException e) 

       { 

        e.printStackTrace(); 

       } 
      } 
%> 
+0

が重複する可能性が...

私はそれを行うための正しい方法だと思いますMySQLから複数のイメージをrieve](http://stackoverflow.com/questions/2340406/retrieve-multiple-images-from-mysql) –

答えて

0

私はJava開発者ではありませんが、コードが正しく理解されていれば、イメージを含むバイト配列全体を書き込んでレスポンスオブジェクト経由でイメージを出力しようとしています。

o.write('data:image/jpeg;base64,' + 
    '/9j/4AAQSkZJRgABAQEASABIAAD/4gv4SUNDX1BST0ZJTEUAAQEAAAvoAAAAAAIAAABtbnRyUkdCIFhZ' + 
    'WiAH2QADABsAFQAkAB9hY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA9tYAAQAAAADTLQAA' + 
    'AAAp+D3er/JVrnhC+uTKgzkNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBkZXNjAAABRAAA' + 
    'AHliWFlaAAABwAAAABRiVFJDAAAB1AAACAxkbWRkAAAJ4AAAAIhnWFlaAAAKaAAAABRnVFJDAAAB1AAA' + 
    'CAxsdW1pAAAKfAAAABRtZWFzAAAKkAAAACRia3B0AAAKtAAAABRyWFlaAAAKyAAAABRyVFJDAAAB1AAA' + 
    'CAx0ZWNoAAAK3AAAAAx2dWVkAAAK6AAAAId3dHB0AAALcAAAABRjcHJ0AAALhAAAADdjaGFkAAALvAAA' + 
    'ACxkZXNjAAAAAAAAAB9zUkdCIElFQzYxOTY2LTItMSBibGFjayBzY2FsZWQAAAAAAAAAAAAAAAAAAAAA' + 
    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' .... and so on and so forth (remaining bytes encoded in Base64).); 
1

次のコードを適応させるようにしてください:[Retのの

<% 
Connection con = FactoryConnection_SQL_SERVER.getConnection("Organograma"); 
Statement stSuper = con.createStatement(); 
Statement stSetor = con.createStatement(); 

Blob image = null; 
byte[] imgData = null; 

ResultSet rsSuper = stSuper.executeQuery("Select * From funChart where setor = 'mySetor'"); 

if (rsSuper.next()) { 
image = rsSuper.getBlob(12); 
imgData = image.getBytes(1, (int) image.length()); 
response.setContentType("image/gif"); 
OutputStream o = response.getOutputStream(); 
//o.write(imgData); // 
//o.flush(); 
//o.close(); 

--[...] 

<table style="margin: 0px; margin-top: 15px;"> 
<tr> 
<td id="foto"> 
    <img title="<%=rsSuper.getString("Nome").trim()%>" src="<%= o.wite(imageData); o.flush(); o.close(); %>" /> 
</td> 
</td> 

<td id="dados"> 
<h3><%=rsSuper.getString("Nome")%></h3> 
<p><%=rsSuper.getString("Cargo")%></p> 
<p>Matrícula:<br/><%=rsSuper.getString("Chave")%></p> 
<p>Telefone:<br/><%=rsSuper.getString("Fone")%></p> 
<p>E-Mail:<br/><%=rsSuper.getString("Email")%></p> 
</td> 
</table> 
関連する問題