23. maj 2001 - 15:02Der er
11 kommentarer og 3 løsninger
BLOB i Java !
Hvor gemmer jeg egentlig en f.eks. gif fil i min database og hvordan henter jeg den igen. Så vidt jeg ved skal min gif fil pakkes ind i en BLOB og streames til database. Når jeg vil ha\'den igen så skal den outputstreames. Er der nogen der har nogle gode forslag ??
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Det, du beskriver der, er en udemærket måde at gemme billeder i databasen på. Normalt vil det dog være mere hensigtsmæssigt at lade billederne ligge udenfor DB - eksempelvis i et images subdirectory - og så blot gemme filnavnet i DB.
Jeg vil nu meget gerne have BLOB til at fungere, da jeg hele dagen har forsøgt at finde ud af hvordan man gør. Men ja vist det går helt i kludder bliver jeg sikker nød til at gemme billedet på harddisken. Jeg har forgæves læst i diverse bøger og søgt på sun. Alle nævner BLOB, men igen går dybere i detaljer.
Jeg har stadigvæk ikke fundet ud af hvordan jeg streamer mine billeder
Selvfølgelig er enhver hjælp da meget velkommen, jeg har simpelthen knoklet hele dage med at få gemt mine billeder. Selv Suns\' hjemmeside nævner ikke meget om Blob. De bliver kun nævnt. Har altså bruge for en smule kode så skal jeg nok klare resten selv. :-)
top nej nej selvfølgelig skal du ikke skrive min kode. Hmm Kigger på JAI er en smulet smadret har programmeret for vildt det sidste stykke tid. Kan næsten ikke kend forskel på dag og nat
prøv lige noget der ligner dette. Det virker for mig !
RandomAccessFile file = new RandomAccessFile(\"mitbillede.gif\",\"r\"); long fillængde = file.length();//fillængde i bytes byte[] data = new byte[(int)længde]; file.readFully(data); //indlæs bytes fra fil og læg dem i bytes file.close();
String Query = (\"Insert into tabel (billede) Values(?)\"); pstmt = cn.prepareStatement(Query); pstmt.setBytes(3, data); //method to insert a stream of bytes
//execute the insert statement pstmt.executeUpdate();
Jeg har jeg endelig fået lagt i objekt over i databasen(Access) Men pussigt nok når jeg prøver at se det i datbasen får jeg følende fejl fra Access 2000: Der opstod et problem mens Microsoft Access 2000 kommunikerede med OLE Serveren eller Active Objektet. Desuden naar jeg ser i mine tabeller skriver Accesse Lange binaere tal ?. Jeg har sikker streamet mit billed forkert. Koden se saaledes ud
Takker allesammen for hjælpen. Min source koder virker, man skal bare huske på at når man gemmer et billede i Databasen skal man sende et ID nummer med, idet billedet der gemmes ikke navngives.
Med hensyn til null værdier i Access så ser det ud til at det ikke kan lade sig gøre. Har prøvet med
pst.setObject(1,null,Types.INTEGER);
Men typen stemmer ikke overens med Access,s autonummering.
Nu kommer det endnu sjovere at få det til at virker over RMI :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.