我正在创建 Web 应用程序,我在 MYSQL DB 中将图像存储为 MEDIUMBLOB 并在浏览器上显示它们。
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