|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dmitry Dmitriev 2:5047/43.1 13 Mar 2001 12:21:17 To : vlada@dios.ru Subject : Re: Blob + perl -------------------------------------------------------------------------------- Hello vlada@dios.ru. On Mon, 12 Mar 2001 14:43:02 +1100, vlada@dios.ru wrote: vdr> Hе подскажете, как можно, с помощью скрипта, затащить картинку в базу. vdr> Буду благодарен за короткий примерчик... Вот этот скрипт вбивает в базу (PostgreSQL) картинки, лежащие заууюканными в файле 'los.back'. Ежели нужен и обратный скрипт -- пиши, есть :) ==== #!/usr/bin/perl -w use strict; use DBI; my $dbname = "xxxxxx"; my $user = "xxx"; my $infile = "los.back"; restpict('g_picts','gp_id','picture'); ###################################################################### sub restpict { my ($table,$id,$picname) = @_; my ($select,$sth,$num,$blob_id,$blob_fd,$uue,$buf,$length); my $dbh = DBI->connect("dbi:Pg:dbname=$dbname", "$user", "", {AutoCommit => 0}); $select = "UPDATE $table set $picname = ? WHERE $id = ?"; $sth = $dbh->prepare($select); $num = -1; open (PICT, "< $infile"); while (<PICT>) { if (/^begin \d\d\d \Q$table\E\-(\d+)$/) { $num = $1; $uue = ""; next; } elsif ($num == -1) { next; } elsif (/^end$/) { $buf = unpack("u*",$uue); $length = length($buf); $blob_id = $dbh->func(0, 'lo_creat'); $blob_fd = $dbh->func($blob_id, 0, 'lo_open'); $dbh->func($blob_fd, $buf, $length, 'lo_write'); print "$blob_id lo $num in table $table size $length...\n"; $sth->execute($blob_id,$num); $dbh->func($blob_fd, 'lo_close'); $num = -1; next; } $uue .= $_; } close PICT; $sth->finish; $dbh->commit; $dbh->disconnect; }; ######################################################################## vdr> Заранее спасибо. /i am, ddv --- tin/1.4.4-20000803 ("Vet for the Insane") (UNIX) (Linux/2.2.18-1.6bc (i686)) * Origin: -=- Wireless Remote Penguin -=- (2:5047/43.1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14672ff15781c.html, оценка из 5, голосов 10
|