我为许多其他人开了一个讨论而道歉,但我在这个网站的讨论中搜索了很多,但我没有找到适合我的解决方案。 我需要做的很简单,但我无法摆脱它。 我有和jpg图像存储在我的数据库中,采用BLOB格式,我希望将其恢复并创建一个标签IMG来显示它。 通过查询获取blob后,我只需将其转换为byteArray。 这里出现了问题。 如果我在响应中写入并在其他jsp中访问它,我也可以看到图像..
<html>
<head>
<title>View Image</title>
</head>
<body>
<b>View | <a href="index.jsp">Upload</a></b><br/><br/>
<%
String id = request.getParameter("id");
%>
<img src="Message.jsp" width="400px"/>
</body>
但如果我尝试创建标签IMG并在同一页面中设置标签,则不会显示(如下面的JSP代码所示)。
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(connectionURL, user, pass);
PreparedStatement ps = con.prepareStatement("select * from contacts ");
ResultSet rs = ps.executeQuery();
if(rs.next()){
Blob blob = rs.getBlob("photo");
byte byteArray[] = blob.getBytes(1, (int)blob.length());
%>
<img src="data:image/jpg;base64,<%=byteArray %>" />
<%
/* response.setContentType("image/gif");
OutputStream os = response.getOutputStream();
os.write(byteArray);
os.flush();
os.close();*/
}
(这不显示任何img)
答案 0 :(得分:0)
img标记将进行单独的服务器调用以检索图像数据。 src属性应指向servlet。 servlet应该检索图像数据并将其直接写入输出流。