2009-12-21 13 views
7

Voglio memorizzare un'immagine in un database MySQL. Ho creato una tabella con un tipo di dati BLOB, ma ora come posso salvare l'immagine in questa tabella?Come si memorizza un'immagine in MySQL?

+4

Un'opzione migliore potrebbe essere memorizzare il percorso fisico dell'immagine nel DB. –

risposta

11

Si consiglia di controllare il seguente esempio e:

Da java2s.com: Insert picture to MySQL:

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 

public class InsertPictureToMySql { 
    public static void main(String[] args) throws Exception, IOException, SQLException { 
    Class.forName("org.gjt.mm.mysql.Driver"); 
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/databaseName", "root", "root"); 
    String INSERT_PICTURE = "INSERT INTO MyPictures (photo) VALUES (?)"; 

    FileInputStream fis = null; 
    PreparedStatement ps = null; 
    try { 
     conn.setAutoCommit(false); 
     File file = new File("/tmp/photo.png"); 
     fis = new FileInputStream(file); 
     ps = conn.prepareStatement(INSERT_PICTURE); 
     ps.setBinaryStream(1, fis, (int) file.length()); 
     ps.executeUpdate(); 
     conn.commit(); 
    } finally { 
     ps.close(); 
     fis.close(); 
    } 
    } 
} 

MySQL Table:

CREATE TABLE MyPictures (
    photo BLOB 
); 

Se l'immagine si trova sul vostro host server MySQL, è possibile utilizzare il comando LOAD_FILE() da un client di MySQL:

INSERT INTO MyPictures (photo) VALUES(LOAD_FILE('/tmp/photo.png')); 
+0

Possiamo inserire l'immagine utilizzando un linguaggio di query semplice? –

+3

Sì, potresti provare a utilizzare la funzione 'LOAD_FILE()': 'INSERISCI I valori mytbl (image_data) (LOAD_FILE ('/ tmp/myimage.png'));' (http://www.freeopenbook.com /mysqlcookbook/mysqlckbk-CHP-17-SECT-7.html) –

+0

Il suo compagno non funzionante .... –

Problemi correlati