Thread Oracle-DB: Auslesen von BLOBs und speichern
(16 answers)
Opened by provisoft at 2012-04-04 16:25 Code (perl): (dl
)
1 2 3 4 5 # Bild ausgeben $|=1; print $cgi->header(-type=>"image/jpeg",-charset=>""); binmode(STDOUT); #print STDOUT $BLOB; Damit gibst du NUR das Bild aus. Wenn ich das nachfolgende sehe, denke ich, du willst das Bild in HTML einbinden? Code (perl): (dl
)
print "<p align='left'><img src=$BLOB></p>"; Also musst du die Daten auch mit eigenen Skript ausgeben, sodass der Browser das Bild auslesen kann. Das ginge ungefähr so als Skript getpic.pl: 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 my $cgi = CGI->new; my $bildid = $cgi->param('picid'); if (defined($bildid) and $bildid =~ /^\d+$/) { $sqlStmtSel = "SELECT DATA FROM BINARY_DATA WHERE ID = ?"; $dbhsrc->{LongReadLen}=150000000; # Make sure buffer is big enough for BLOB $stmtSel = $dbhsrc->prepare($sqlStmtSel) || die "\nPrepare error:$DBI::errstr\n"; $stmtSel = $dbhsrc->execute($bildid) || die "\nPrepare error:$DBI::errstr\n"; # Daten des BLOB lesen my @data = $stmtSel->fetchrow_array; my $BLOB = shift @data; if ($BLOB) { # Bild ausgeben $|=1; print $cgi->header(-type=>"image/jpeg",-charset=>""); binmode(STDOUT); print STDOUT $BLOB; } } Das Skript muss dann so bei einem Bild ins HTML eingebunden werden: Code: (dl
)
<img src="/cgi-bin/getpic.pl?picid=12345"> |