表示する前に、私はBLOBをMYSQLに挿入して成功しました。このコードを使用してBLOBをJSPに表示しました。JSPを使用してmysqlにBLOBを表示するにはどうすればよいですか?
Connection con = Koneksi.getKoneksi();
String id = request.getParameter("id_pengurus");
PreparedStatement ps = con.prepareStatement("select foto from pengurus where idpengurus = ?");
ps.setString(1, id);
ResultSet rs = ps.executeQuery();
rs.next();
Blob b = rs.getBlob("foto");
response.setContentType("image/jpg");
response.setContentLength((int) b.length());
InputStream is = b.getBinaryStream();
OutputStream os = response.getOutputStream();
byte buf[] = new byte[(int) b.length()];
is.read(buf);
os.write(buf);
os.close();
このコードを使用して、BLOBをSQLからJSPに表示すると、そのコードは機能しました。 このコードを使用してMYSQLのBLOBをJSPに表示すると、動作しませんでした。私はどんな解決策をとるべきですか?私の悪い英語を申し訳ありません。前にありがとう。
私は質問を理解していませんが、開かれていないストリームを閉じるべきではありません(問題はありませんが、一般的なルールがあります)。 –
ごめんなさい。 ORACLE SQLにBLOBを表示するためにJSPでそのコードを使用しました。表示可能なBLOB SQLとMySQLのコードが異なるのでしょうか?ありがとうございます。 – Martin
'is.read(buf)'を呼び出したときに読み込まれたバイト数を確認していないので、すべてを受け取っていない可能性があります。 BLOB全体をバイト配列として取得する場合は、単に 'byte [] buf = rs.getBytes(" foto ")'を呼び出し、 'Blob'クラスを忘れる必要があります。 – Andreas