use DBI; 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; ### --------------------------------------------------- # Bild ausgeben $|=1; print $cgi->header(-type=>'image/jpeg'); binmode(STDOUT); print STDOUT $BLOB; ### --------------------------------------------------- # Bild als BLOB aus Datei einlesen my $imgfilename = "test.jpg"; $if (open my $fh, '<', $imgfilename) { binmode($fh); local $/ = undef; # Slurp mode aktivieren $BLOB = <$fh>; # Daten komplett in einem Rutsch einlesen close $fh; } # 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); }