2016-06-16 12 views
0

私imageDispaly.jspは、サーブレットとJSPでwhileループの中を呼び出すために言ってサーブレットを使用して取得し、バイト配列の画像データについてのjspで壊れた画像を取得して「画像を開くことができないこと、エラーが含まれています」

<img src="/Elvisxu/imageDisplayProcess.do?id=<%=rs.getString(1)" width="75" height="60"/> 

を持っています。

私のサーブレット・クラス・コードは、私はGoogleで検索しかし、私はこのために何らかの理由を取得できませんでした

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    String id = request.getParameter("id"); 

    String imgLen=""; 
    try { 
    DBManager dm=new DBManager(); 
    dm.GetConnection(); 
    String sql="select snap from newapp where applid="+id; 
    ResultSet rs=dm.select(sql); 
    while (rs.next()) 
    { 
     imgLen = rs.getString(1); 
     System.out.println(imgLen.length()); 
     int len = imgLen.length(); 
     byte [] rb = new byte[len]; 
     InputStream readImg = rs.getBinaryStream(1); 
     System.out.println("readImg "+readImg); 
     int index=readImg.read(rb, 0, len); 
     System.out.println("index "+index); 
     response.reset(); 
      response.setContentType("image/png"); 
      response.getOutputStream().write(rb,0,len); 
      response.getOutputStream().flush(); 

    } 
    }catch (Exception e) { 
     System.out.println(e); 
    } 

以下の通りです。私は

としてスナップ列からデータを取得PostgreSQLのDBを使用してい

[B 302a7504

@任意の応答は、この問題は、 "bytea型" のデータであり、かなりの

答えて

0

ですnewappテーブルのスナップカラム(bytea)にデータを保存している間にprepared statementを使用して解決します。

関連する問題