我已尝试使用blob从MySQL数据库显示图像...图像不可见。 我使用过这段代码。
请纠正此错误
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<img src="WEB-INF/New folder/birthhappy birthday.jpeg"
width="65" height="71" alt="birthhappy birthday"/>
<H1>Database Lookup</H1>
<FORM ACTION="base.jsp" METHOD="POST">
Please enter the ID of the publisher you want to find:
<BR>
<input type="text" name="imagename">
<BR>
<INPUT TYPE="SUBMIT" value="Submit">
</FORM>
</body>
</html>
base.jsp:
<%@page import="java.io.OutputStream"%>
<%@ page import="java.sql.*" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/searchimg","root","");
Statement stmt = con.createStatement();
//String id = request.getParameter("id");
String imagename=request.getParameter("imagename");
ResultSet resultset =stmt.executeQuery("select * from friendupload where imagename = '" +imagename.trim()+ "' ") ;
while(resultset.next())
{
%>
<table>
<tr>
<td> <%=resultset.getString(1)%> </td>
<td> <%=resultset.getString(2) %> </td>
<td> <%=resultset.getString(3)%> </td>
<td>
Blob getimg=rs.getBlob( 4);
InputStream readImg = getimg.getBinaryStream();
int size=readImg.available();
OutputStream outf=new FileOutputStream("D:/profile/"+rs.getString(2)+rs.getString(3)+".jpeg");
byte b[]= new byte[size];
readImg.read(b);
outf.write(b);
outf.close();
</td>
</tr>
</table>
<% }%>
</form>
</body>
</html>
答案 0 :(得分:0)
为您正在存储的图像提供正确的路径,因此在blob保存图像后,您应该使用图像标记加载它,只是让blob不会显示图像。
<%while(resultset.next())
{
%>
<table>
<tr>
<td> <%=resultset.getString(1)%> </td>
<td> <%=resultset.getString(2) %> </td>
<td> <%=resultset.getString(3)%> </td>
<td>
Blob getimg=rs.getBlob( 4);
InputStream readImg = getimg.getBinaryStream();
int size=readImg.available();
OutputStream outf=new FileOutputStream("D:/profile/"+rs.getString(2)+rs.getString(3)+".jpeg");
byte b[]= new byte[size];
readImg.read(b);
outf.write(b);
outf.close();
<image src="<%=path%>" />
</td>
</tr>
</table>
您是否检查过图像文件是否已保存在您指定的位置。
答案 1 :(得分:0)
缺少<form>
标记,并确保存在d:\ profile /目录
在表单元素中使用<img>
元素
答案 2 :(得分:0)
有时浏览器不允许您使用本地硬盘资源。
您最好编写一个ImageServlet来直接传递这些图像,而无需将它们写入文件。
注意:如果使用chunked-stream(默认)传递这些图像,请指定内容长度!否则,浏览器将不知道响应何时结束。这会导致防病毒程序永无止境地分析这些图像。
BTW :WEB-INF /新文件夹/ birthhappy birthday.jpeg无法访问,请尝试使用WEB-INF / classes / META-INF / resources /新文件夹/ birthhappy birthday.jpeg < / p>