2016-06-16 12 views
-2

I Bilddatei Datenbank speichern kann, aber wie kann ich das Bild als Datei und Vorschau mit Java zu bekommen, ist es wie quikr BildWie Bilddatei aus Datenbank abgerufen werden java

+0

Was haben Sie versucht? Was bekommst du? Wie wird das Bild in der DB als Base 64 gespeichert? –

+0

Bild wird als Binärdatei gespeichert, kann ich es als Bilddatei konvertieren –

Antwort

0

Konvertieren der Image zu Bytes hochladen, speichern zu db oder this answer zu konvertieren Bytes oder this answer, die wie Ihr Problem ist

prüfen this für Byte Bildoperationen

von db in Bytes

prüfen wiederherstellen

+0

Wie konvertiert man Bytes in Bild und Vorschau? –

0

Der folgende Code wird Bilder in MySql DB speichern und abrufen.

Shop Bild in DB

public static void main(String args[]){ 
    try{ 
    // DB connection 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con=DriverManager.getConnection("jdbc:mysql://localhost/your db name","root","root"); 

     File file=new File("E:\\sample_image.png"); 
     FileInputStream fis=new FileInputStream(file); 

    //Insert image into db 
     PreparedStatement ps=con.prepareStatement("insert into image_table (name,image) values(?,?)"); 
     ps.setString(1,"image 1"); 
     ps.setBinaryStream(2,fis,(int)file.length()); 
     ps.executeUpdate(); 

     ps.close(); 
     fis.close(); 
     con.close(); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
} 

Abrufen Bild in DB

Im Folgenden Code Bild aus der Datenbank abrufen und @ Standort speichern "E: \ sample_image.png".

public static void main(String args[]){ 
    try{ 
    // DB connection 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con=DriverManager.getConnection("jdbc:mysql://localhost/your db name","root","root"); 

     File file=new File("E:\\sample_image.png"); 
     FileOutputStream fos=new FileOutputStream(file); 
     byte b[]; 
     Blob blob; 

     PreparedStatement ps=con.prepareStatement("select * from image_table"); 
     ResultSet rs=ps.executeQuery(); 

     while(rs.next()){ 
      blob=rs.getBlob("image"); 
      b=blob.getBytes(1,(int)blob.length()); 
      fos.write(b); 
     } 

     ps.close(); 
     fis.close(); 
     con.close(); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
} 
+0

Es ist Web-App, ich möchte nicht im lokalen Speicher speichern, ich möchte das Byte wiederherstellen und es in Bilddatei konvertieren. Aber nicht im lokalen Speicher sichern –

Verwandte Themen