我正在創建Web應用程序,將圖像作爲MEDIUMBLOB存儲在MYSQL數據庫中,並在瀏覽器中顯示它們。無法顯示圖像
PreparedStatement psmt = con.prepareStatement("SELECT pdfImage FROM pdfInfo WHERE pdfinfoid=?");
psmt.setString(1, what);
ResultSet rs1 = psmt.executeQuery();
while (rs1.next()) {
System.out.println("inside rs1.mext");
String imgLen = rs1.getString(1);
System.out.println(imgLen.length());
int len = imgLen.length();
System.out.println("length inside == " + len);
byte[] rb = new byte[len];
InputStream readImg = rs1.getBinaryStream(1);
InputStream inputStream = readImg;
int index = readImg.read(rb, 0, len);
System.out.println("index----------------" + index);
response.reset();
response.setHeader("Content-Length", String.valueOf(len));
response.setHeader("Content-disposition", "inline;filename=/file.png");
response.setContentType("image/png");
response.getOutputStream().write(rb, 0, len);
response.getOutputStream().flush();
}
問題是我能夠在本地看到圖像,以及何時進行項目直播。問題是隻有一個圖像。
sout語句的輸出如下。
INFO: inside rs1.mext
INFO: 5942414
INFO: length inside == 5942414
INFO: index----------------5942414
INFO: leng here is 5942414
當這個信息是本地主機,我可以查看圖像,但是當我把這個項目在網上,我無法查看圖像。
我需要在任何地方設置任何參數,以便我可以看到圖像。
其他sout聲明如下,我可以看到圖像。
INFO: inside rs1.mext
INFO: 204999
INFO: length inside == 204999
INFO: index----------------204999
INFO: leng here is 204999
INFO: inside rs1.mext
INFO: 515274
INFO: length inside == 515274
INFO: index----------------515274
INFO: leng here is 515274
存儲圖像的路徑而不是數據庫中的圖像,事情會變得更加順暢 – Ibu
@Ibu:我知道這是最好的解決方案,但問題是我已經完成了80%的編碼,並且使BLOB成爲路徑乏味。如您所見, –