Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Вывод изображений


Автор: Гость_Rusico 24.3.2005, 11:13
Привет. Есть небольшой вопрос:

у меня в базе хранятся изображения в виде строк(Blob),
как мне вывести их в броузер.
Пробовал так:
my $dbh = dbConnect();
my $sql = "select value from Image where id=6 and cod=2";
my $row = $sth->fetchrow_array;
print $row;

не выхлодит.[/size][size=1]

Автор: korob2001 24.3.2005, 11:25
Никогда не хранил в базе изображения, попробуй пока так:
Код

my $row = $sth->fetchrow_arrayref;
print  @$row;

Но я не обещаю, что это сработает. Я пока в книгах пороюсь.

Автор: Russo 24.3.2005, 11:32
так уже пробовал.
Пробовал даже так:
Записывал в базу не содержимое картинки, а массив байтов из неё,
а потом переводил в char.

Вообщето и в том и в другом случае он выводит белеберду, но не ту что надо, т.е.
появляются знаки вопроса и квадратики, а еслибы он выводил "правильную белеберду", то появлялась бы картинка. Проверял[color=skyblue][/color]

Автор: korob2001 24.3.2005, 12:15
Может проблема в заголовках???

Автор: Russo 24.3.2005, 12:18
Много чего перебробовал

Автор: korob2001 24.3.2005, 12:24
Я вот думаю, может попробовать создать отдельный файл, который будет извлекать и выводить изображение. А в HTML коде просто прописывать так <img src="/cgi-bin/pic.pl?id=10">??? Так пробовал????

Автор: Russo 24.3.2005, 12:33
Дело не в этом. если прочитать файл картинки и сразу вывести данные из неё, то в браузере будет картинка.
А <img...> попробовал: эффекта нет.

Автор: korob2001 24.3.2005, 13:12
Как ты пишешь заголовок(header)???

Автор: GoodBoy 24.3.2005, 13:38
Russo
А не проще держать картинку отдельно, а в базе просто ссылку на неё???

Автор: korob2001 24.3.2005, 13:53
Да и вообще даже в книгах не рекомндуют хранить изображения в базе. Инфы такой нигде нет, потому что это плохой способ хранения графики. И база как правило имеет ограничение на размер.

Автор: Phoinix 4.4.2005, 14:20
Russo

Во-первых header соответсвующий

print "Content-type: image/gif;\n\n"; # это для gif

Во-вторых:

binmode STDOUT;

Автор: Sadok 5.4.2005, 08:35
Phoinix
Цитата
print "Content-type: image/gif;\n\n"; # это для gif

Первая точка с запятой - лишняя

Автор: Phoinix 5.4.2005, 14:15
Sadok

Цитата(Sadok @ 5.4.2005, 08:35)
Первая точка с запятой - лишняя


Ты посты набираешь или придираешься к фразам?

Эта "точка с запятой" погоды на самом деле не делает...

Автор: korob2001 5.4.2005, 16:59
Sadok, Phoinix - да ладно вам, не сcорьтесь. smile

Автор: Sadok 6.4.2005, 08:41
Phoinix
Цитата
Ты посты набираешь или придираешься к фразам?

Я синтаксис проверяю.
Сходи на http://mysql.ru/ - там все обсосано уже давно.

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