returnere image fra MySQL
HejsaJeg har fra hjælp fra Arne fået lavet en servlet som tjekker om en bruger findes i min MySQL database. Igår byggede jeg så videre på det, så brugeren bliver redirectet til en side, hvor man kan uploade et billede til databasen. Det virker også helt fint, men nu vil jeg gerne have at når billedet er uploadet, kan man også returnere sit image og få det vist. Jeg har prøvet at lave min servlet og en JSP side som henter den pågældende servlet. Men det virker ikke. Er jeg på rette vej, eller?
Servlet:
package jsp;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ImageServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException{
//PrintWriter pw = response.getWriter();
String connectionURL = "jdbc:mysql://localhost/dblogin";
Connection connection = null;
response.setContentType("text/html");
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL,"root","");
Statement st1 = connection.createStatement();
ResultSet rs1 = st1.executeQuery("SELECT image FROM photo WHERE firstname='mads'");
String imgLen="";
if(rs1.next()){
imgLen = rs1.getString(1);
System.out.println(imgLen.length());
}
rs1 = st1.executeQuery
("SELECT image FROM photo WHERE firstname='mads'");
if(rs1.next()){
int len = imgLen.length();
byte [] rb = new byte[len];
InputStream readImg = rs1.getBinaryStream(1);
int index=readImg.read(rb, 0, len);
System.out.println("index"+index);
st1.close();
response.reset();
response.setContentType("image/jpg");
response.getOutputStream().write(rb,0,len);
response.getOutputStream().flush();
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
JSP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Get Image</title>
</head>
<body>
<p>Here you can see the image</p>
<a href="ImageServlet">Click For Photo</a>
</body>
</html>
Mvh Mads