Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > аплоад файла с сохранением в БД


Автор: Sap1enS 10.10.2007, 07:44
Никак не могу найти такую простую, на мой взгляд, вещь.

Гружу файл через форму POST`ом. 

Если при обработке я пишу 
$file = $query -> param('file');
а затем,
print $file;
то выводится название файла. 
Мне нужно НЕ сохранить его на сервере, а получить строку с содержимым файла и записать его в БД (поле типа BLOB). 

Автор: nitr 10.10.2007, 10:24
Sap1enS, а тип формы указан? Если что - код в студию (но на форуме уже обсуждали это, поиском можно глянуть ;) )

Автор: KSURi 10.10.2007, 10:27
Попробуй так:
Код

my $tmp = $query -> param('file');

my $content;
binmode $content;

$content .= $_ while <$tmp>;

$dbh -> do(qq{... '$content' ...})

Автор: kefir01 11.10.2007, 08:49
Код

my $foto = param("foto");
my $content;

my $dbh = DBC();

my $file = upload($foto,"tempimg"); #подпрограмма работает нормально.
open(FOTO,"/home/.../WWW/_TEMP/$file");
$content .= $_ while <FOTO>;
close FOTO;

my $sth = $dbh->prepare(qq{update students set birth_date="$birth",user="$mail",photo="$content" where id="$id"});
$sth->execute;
system("rm -fR /home/psihser9/.../_TEMP/$file");


Знающие люди, скаите плиз почему может не работать такой код?
Файл закачивается, передается в $content, который почему-то не добавляется.

UPD
 
Поменял немного код - заработало
Код

my $sth = $dbh->prepare(qq{update students set birth_date="$birth",user="$mail",photo=? where id="$id"});
$sth->execute($content);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)