use DBI; use GD; use CGI; # Handle für die Ausgabe diverser CGI-"Sachen" my $cgi = CGI->new; # DB öffnen my $dbh = DBI->connect('dbi:Oracle:DB','username','password') or die $DBI::errstr; ### -------------------------------------------------- # SQL-Abfrage für das Auslesen des Bildes aus der DB vorbereiten my sth = $dbh->prepare(<<"SQL"); SELECT imgdata FROM images WHERE images_id=?; SQL # SQL auführen $sth->execute($imageid); # Daten des BLOB lesen my @data = $sth->fetchrow_array; my $BLOB = shift @data; ### --------------------------------------------------- # Bilddaten erzeugen my $image = GD::Image->newFromJpegData($BLOB); # Bild ausgeben $|=1; print $cgi->header(-type=>'image/jpeg'); binmode(STDOUT); print STDOUT $image->jpeg; ### --------------------------------------------------- # Bild als BLOB aus Datei einlesen my $imgfilename = "test.jpg"; $image = GD::Image->newFromJpeg($imgfilename); $BLOB = $image->jpeg; # SQL-Abfrage zum "Speichern" des Bildes vorbereiten my sth = $dbh->prepare(<<"SQL"); UPDATE images SET imgdata=? WHERE images_id=?; SQL # SQL auführen $sth->execute($BLOB,$imageid); ### --------------------------------------------------- # Datenbank schließen beim Beenden des Skripts (kannst du auch woanders machen) END { $dbh->disconnect if defined($dbh); }