Привет всем !!!
Такая проблема использую DBI mod_perl apache чтоб загрузить файлы в базу данных и потом их от туда прочитать при необходимости.
Таким макаром
$db->func('lo_creat') и так далее, все типа работает загружаеться а вот когда я хочу прочитать то получаеться толи не все данные читаються толи не все данные пишуться в таблицу
может кто подскажет что не так делаю ???Ниже то что я делаю.
use DBI;
#use DBD::Pg;
use CGI qw/:standard/;
$db = DBI->connect("dbi:Pg:dbname=template1","pgsql","",{PrintError=>0});
print header({-charset=>'utf-8'});
print start_html;
print start_form({-enctype=>'multipart/form-data'});
print textfield({-name=>'file_name',-size=>'50'}),p;
print filefield({-name=>'upload_file',-size=>'50'}),p;
print submit();
$files = param('upload_file');
$filename = param('file_name');
$db->{AutoCommit} = 0;
if (defined $files)
{
$lobj_id = $db->func($db->{'pg_INV_WRITE'}, 'lo_creat');
while(<$files>)
{
$buf = $_;
--------------- С таким вариантом все нормально
#$buf = 'abc' x 100;
$lobj_fd = $db->func($lobj_id, $db->{'pg_INV_WRITE'}, 'lo_open');
$db->func($lobj_fd, 0, 0, 'lo_lseek');
$len = $db->func($lobj_fd, $buf, length($buf), 'lo_write');
die "Errors writing lo\n" if $len != length($buf);
}
$db->func($lobj_fd, 'lo_close') or die "Problems closing lo object\n";
$db->{AutoCommit} = 1;
}
if (defined $lobj_id)
{
$q = "insert into files(filename,file) values('$filename','$lobj_id')";
$rv = $db->do($q);
if (!defined $rv) { print "Insert record error ","\n"; exit(0); } else
{
print "Large object ID = ",$lobj_id,"\n";
}
}
$db->disconnect();
Может кто поможет хотя бы куда копать ?????