title: How to read and save image from MySQL
body: <p>What I have to do is insert an image into the MySQL table and then fetch the image data (saved as blob type) and write it to a file at some file location.</p>
  
  <p>So far I have the below code to read the image data from the table and write it as an image file:</p>
  
  <pre><code>package imageReadWrite;
  
  import dbConnection.testConnection;
  
  import java.io.BufferedOutputStream;
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.InputStream;
  import java.io.OutputStream;
  import java.sql.*;
  
  public class BlobImageReadWeite {
      testConnection db = new testConnection();
  
      public String GetImage() {
          String result = "";
          try {
              db.connect();
              System.out.println("this is for test connection");
              String Banner_chk = "Select * from banner_file where image_name is not null and status='Active' order by upload_dt DESC LIMIT 1";
              ResultSet rs_Banner_chk = db.execSQL(Banner_chk);
              if (rs_Banner_chk.next()) {
                  System.out.println(rs_Banner_chk.getString("image_name"));
  
                  Blob blob = rs_Banner_chk.getBlob("image");
                  File image = new File("test.png");
                  FileOutputStream fos = new FileOutputStream(image);
  
                  byte[] buffer = new byte[1024];
  
                  // Get the binary stream of our BLOB data
                  InputStream is = rs_Banner_chk.getBinaryStream("image");
                  while (is.read(buffer) &gt; 0) {
                      fos.write(buffer);
                  }
  
                  fos.close();
              }
  
              db.close();
          } catch (Exception e) {
              System.out.println(e);
          }
  
          return result;
      }
  
      public static void main(String[] args) {
          BlobImageReadWeite obj1 = new BlobImageReadWeite();
          obj1.GetImage();
      }
  }
  </code></pre>
  
  <p>The problem being that the image file that is generated is not opening.</p>
  
  <p>I am inserting the image into DB using following code</p>
  
  <pre><code> package promocode;
  import java.awt.Toolkit;
  import java.io.*;
  import java.util.*;
  import java.util.Date;
  import java.text.*;
  import java.sql.*;
  import java.util.Vector;
  import javax.imageio.*;
  import javax.swing.ImageIcon;
  import java.awt.*;
  
  
  import db.connection;
  
  
  
  public class ImageReader {
  connection db=new connection();
  public String fileupload(String flname,String user,String promo_rad)throws      IOException, SQLException,ParseException{
  
  String line=null;
  
   String line1 = null;
   String fval = "";
   String fval_temp = "";
   String flog,fileflag;
   String sqlst1 = "";
   String sqlst2 = "";
   String res = "false";
   int er_count=0;
   int cor_count=0;
   String error_message="";
   String chk1="";
   String chk2="";
   String chk3="";
   String chk4="";
  
   System.out.println("the path is"+flname);
   System.out.println(promo_rad);
   String filename1="";
   filename1=flname.substring(flname.lastIndexOf("\\")+1) ;
   System.out.println(filename1);
  
  try {
  
  Image img=Toolkit.getDefaultToolkit().getImage(flname);
  ImageIcon icon=new ImageIcon(img);
  int height=icon.getIconHeight();
  int  width=icon.getIconWidth();
  System.out.println("the image height is "+height+" and the image width is "+width);
  File file = new File(flname);
  FileInputStream fs = new FileInputStream(file);
  
  db.connect();
  if(width == 260 &amp;&amp; height == 187){
  
  sqlst2="insert into banner_file (image_name,image, FileType,Status, userid,image_flag,upload_dt,height,width) values ('"+filename1+"','"+fs+"','jpg','Active','"+user+"','"+promo_rad+"',now(),'"+height+"','"+width+"')";
  System.out.println(sqlst2);
  db.updateSQL(sqlst2);
  res="true";
  }
  
      }catch(Exception e){
          System.out.println(e);
  
      }
  finally{
  
  db.close();
  }
  
  return res;
  
  
  }
      public static void main(String[] args) throws Exception {
      // TODO Auto-generated method stub
  
          ImageReader obj1=new ImageReader();
          String fn = "C:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\aircel-billpay\\online_images\\Ganesha13.jpg";
          String result = obj1.fileupload(fn,"internalpromo","yes");
          System.out.println(result); 
  }
  
  }
  </code></pre>