Thread Oracle-DB: Auslesen von BLOBs und speichern
(16 answers)
Opened by provisoft at 2012-04-04 16:25
Ungetestete Schnippsel:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 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); } //EDIT: Ich habe keine Ahnung wie du die Tabelle und Datenbank aufgebaut hast. Möglicherweise musst du noch Code (perl): (dl
)
$dbh->{LongReadLen} Und BLOBs kannst du auf verschiedene Art und Weise lesen udn schreibe wie auf http://search.cpan.org/~pythian/DBD-Oracle-1.42/li... zu sehen ist. Bitte frage nach, wenn du nicht weißt wofür die einzelnen Programmteile sind, es ist kein fertiges Skript! //EDIT: Kommentare erweitert + CGI-Header hinzugefügt Last edited: 2012-04-04 17:23:34 +0200 (CEST) |