Hi,
Ich hab ein kleines Problem.
Für die Webseite meines Vaters will ich Bilder in eine Datenbank laden.
Das Schreiben und Lesen (mit PHP) klappt soweit, allerdings hab ich ein Problem:
Zum Laden brauch ich den MimeType, den ich auch mit
auslesen kann.
ABER:
Bei png-Dateien will das ganze nicht funktionieren. Als MimeType wird application/octet-stream erkannt.
Firefox erkennt dadurch den BLOB nicht als Bild sondern als einfache Binärdatei, die ich dann zum Download angeboten bekomme.
Hier mal mein bisheriger Testcode:
Danke schonmal im vorraus :wink:
Ich hab ein kleines Problem.
Für die Webseite meines Vaters will ich Bilder in eine Datenbank laden.
Das Schreiben und Lesen (mit PHP) klappt soweit, allerdings hab ich ein Problem:
Zum Laden brauch ich den MimeType, den ich auch mit
Code:
new MimetypesFileTypeMap().getContentType(fl)
ABER:
Bei png-Dateien will das ganze nicht funktionieren. Als MimeType wird application/octet-stream erkannt.
Firefox erkennt dadurch den BLOB nicht als Bild sondern als einfache Binärdatei, die ich dann zum Download angeboten bekomme.
Hier mal mein bisheriger Testcode:
Code:
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import javax.activation.MimetypesFileTypeMap;
public class DbImgStore
{
public static void main( String[] args )
{
FileInputStream fis = null;
Connection cn = null;
PreparedStatement st = null;
try {
File fl = new File("Bild.png");
fis = new FileInputStream( fl );
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection( "jdbc:mysql://localhost/binary_data", "prodUser", "" );
st = cn.prepareStatement("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) VALUES (?,?,?,?,?)");
st.setString(1, "DESC");
st.setBinaryStream( 2, fis, (int)fl.length() );
st.setString(3, fl.getName());
st.setString(4, "" + fl.length());
st.setString(5, new MimetypesFileTypeMap().getContentType(fl));
st.executeUpdate();
System.out.println( fl.length() + " Bytes successfully loaded." );
} catch( Exception ex ) {
System.out.println( ex );
} finally {
try { if( null != st ) st.close(); } catch( Exception ex ) {}
try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
try { if( null != fis ) fis.close(); } catch( Exception ex ) {}
}
}
}
Danke schonmal im vorraus :wink: