我试图通过(使用this)在jsp页面中显示blob图像,但出现错误:
javax.servlet.ServletException: java.sql.SQLException: Column '2' not found.
我的桌子是:
create table upload_image
(
iImageID int AUTO_INCREMENT primary key,
bImage longblob
);
代码:uploadimage.jsp
<%@ page language="java" errorPage="" %>
<html>
<head>
<title>Image insert into database</title>
</head>
<body>
<form name="frm" action="saveImage.jsp" enctype="multipart/form-data" method="post">
<input type="file" name="uProperty" /> <br>
<input type="submit" name="goUpload" value="Upload" />
</form>
</body>
</html>
saveImage.jsp
<%@ page import="java.sql.*" %>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.io.output.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%
Connection conn=null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/online","root", "12345");
PreparedStatement psImageInsertDatabase=null;
byte[] b=null;
try{
String sqlImageInsertDatabase="insert into upload_image (bImage) values(?)";
psImageInsertDatabase=conn.prepareStatement(sqlImageInsertDatabase);
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
List items = sfu.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
b = item.get();
}
}
psImageInsertDatabase.setBytes(1,b);
psImageInsertDatabase.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
response.sendRedirect("addimage.jsp");
}
%>
get.jsp
<%@ page import ="java.sql.*" %>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/online","root", "12345");
Statement st = con.createStatement();
ResultSet i = st.executeQuery("select * from upload_image");
%>
<%
while(i.next( )){
%>
<img src="imageServlet?id=<%=i.getString("2")%>" />
<% }%>
在执行get.jsp之后(在执行uploadimage.jsp之后),我得到了"Column '2' not found."
请帮助我在jsp页面中显示图像
它抛出一个错误原因是找到了一个名为的列,2
因为您已经将2放在了双引号中。而且我觉得它应该是1而不是2(但是您知道的更好)这是下面的答案
<img src="imageServlet?id=<%=i.getString(1)%>" />//with no quotes as you can see
或者
<img src="imageServlet?id=<%=i.getString("iImageID")%>" />
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句