Image Objekt in Hexadezimal

masterjcl

Mitglied
Moin, Moin

Ich habe ein kleines Problem mit den speichern einer Bilddatei in einer Datenbank per jdbc

1. wenn ich die Bilder per phpMyAdmin in die Datenbank als Blob lade sieht das Bild codiert folgendermaßen aus

Code:
0xffd8ffe000104a46494600010001001a00140000fffe001f4c4541442 usw

es ist als hexadezimal codiert

dieser Bild kann ich auslesen über jdbc und anzeigen also alles io

nun wollt ich ein Image Objekt oder Image Datei

in das selbige Format umwandeln komplette Fehlanzeige nur Probleme

Code:
DataInputStream fileread = new DataInputStream(
       new BufferedInputStream( new FileInputStream(file)) );
while(true){
try {
  logger.info(fileread.readByte());  //testausgabe
}
catch (java.io.EOFException ex) {
  break;
}
}
Dieser Test hatte als Ausgabe negative Zahlen aber keine Bytes :rolleyes: und negative Zahlen in HEX umwandeln geht irgenwie nicht konform soweit ich mich erinnere sollte das
nur von 0-254 gehen
Vielleicht seh auch den Wald vor lauter Bäumen nicht nach 8 Stunden java quälen.

hat jemand einen Tipp oder Codeschnipsel für mich

thx
 
Zuletzt bearbeitet:
Hi

Morgens geht alles besser :D

Hier meine funktionierende Lösung zum speichern einer Datei als Blob in der Datenbank per jdbc

Code:
DataInputStream fileread=null;
try { fileread = new DataInputStream(
           new BufferedInputStream( new FileInputStream(file)) );
}
catch (Exception ex) {

}

    StringBuffer image_str= new StringBuffer();
    image_str.append("0x");
    while(true){
    try {
    byte mbyte = fileread.readByte();
    String mhex = Integer.toHexString(0x0000FF&mbyte);
    if (mhex.length() < 2) {   mhex="0"+mhex; }
    image_str.append(mhex);
    }
    catch (Exception ex) {
      break;
}


    }
int result = st.executeUpdate("INSERT INTO temp_artikel ( aidx , anummer , aname , ave , aanz , lgkenn , vk , ek , image )"+
                                "VALUES (NULL , '"+jTextField1.getText()+"', '"+jTextField2.getText()+"', '"+jTextField3.getText()+"', '"+jTextField4.getText()+"', '"+jTextField5.getText()+"', '"+jTextField6.getText()+"', '"+jTextField7.getText()+"',"+ image_str.toString() +");");
 
Zurück