Upload image into database in java.
Database table picture
CREATE TABLE `picture` ( `id` int(10) NOT NULL auto_increment, `image` blob, PRIMARY KEY (`id`) )
InsertImage.java
import java.sql.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class InsertImage extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ PrintWriter pw = response.getWriter(); /* Database connection, database name is test */ String connectionURL = "jdbc:mysql://localhost:3306/test"; Connection con=null; try{ Class.forName("com.mysql.jdbc.Driver").newInstance(); /* Database connection, database id is root and password is blank */ con = DriverManager.getConnection(connectionURL, "root", ""); PreparedStatement ps = con.prepareStatement("INSERT INTO picture(image) VALUES(?)"); /* inserting image in pictures table*/ File file = new File("C:\\tomcat\\webapps\\upload\\images\\pic.jpg"); FileInputStream fs = new FileInputStream(file); ps.setBinaryStream(1,fs,fs.available()); int i = ps.executeUpdate(); if(i!=0){ pw.println("image inserted successfully"); } else{ pw.println("problem in image insertion"); } } catch (Exception e){ System.out.println(e); } } }
RetreiveImage.java
import java.sql.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class RetreiveImage extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ /* Database connection, database name is test */ String connectionURL = "jdbc:mysql://localhost:3306/test"; Connection con=null; try{ Class.forName("com.mysql.jdbc.Driver").newInstance(); /* Database connection, database id is root and password is blank */ con=DriverManager.getConnection(connectionURL,"root",""); Statement st1=con.createStatement(); /* select the image from the picture table . */ ResultSet rs1 = st1.executeQuery("select image from picture where id=1"); String imgLen=""; if(rs1.next()){ imgLen = rs1.getString(1); } rs1 = st1.executeQuery("select image from picture where id=1"); if(rs1.next()){ int len = imgLen.length(); byte [] rb = new byte[len]; /* retrieving image in binery format*/ 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(); } } }
web.xml
<servlet> <servlet-name>InsertImage</servlet-name> <servlet-class>InsertImage</servlet-class> </servlet> <servlet-mapping> <servlet-name>InsertImage</servlet-name> <url-pattern>/InsertImage</url-pattern> </servlet-mapping> <servlet> <servlet-name>RetreiveImage</servlet-name> <servlet-class>RetreiveImage</servlet-class> </servlet> <servlet-mapping> <servlet-name>RetreiveImage</servlet-name> <url-pattern>/RetreiveImage</url-pattern> </servlet-mapping>



Link to Us
Hi ,
Nice article,
that helped me..
~Vinayak
it’s help me lot………………….thanx
if i want to create folder at server end at run time …………
how it possible……pls reply soon
Hi Thanks a lot… i am creating to insert a image from the jsp(Not using input type as File just a text box and not using FormFile also).. My problem is i am able to insert image from my local but if the some one connected to my local i am getting the file not found exception.. that is bcos my action class is residing in the server the file path given in text box searches that file in server location which is not present so failing to insert the blob..So please let me know how can set the server object of image data in the js or in jsp… Thanks in advance