Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: разработка для Web > картинка + текст |
Автор: joaquin 23.1.2011, 13:03 |
Добрый день уважаемые форумчане. Есть задача вывода картинок из mysql на страницу с текстом.Из таблицы image вывожу картинку (соотв. код приведен ниже) при задании 'Conten-type: image/jpg'.Вопрос в том как вывести картинку и далее отобразить какой-либо текст. Пример кода: #!/usr/bin/perl -w use CGI::Carp qw(fatalsToBrowser); use DBI; use CGI qw ( :standard ); #Задаем местанахождение файла конфигурации use lib "/home/web/cgi-bin/config"; #Подключаем файл конфигурации use test qw( :DEFAULT :admin &f_date_gm); print "Expired: Sun, 27 october 2010 07:00:00 GMT\n"; print "Last-Modified: " .&f_date_gm() ."GMT\n"; print "Cache-Control: no-store, no-cache, must-revalidate\n"; print "Pragma: no-cache\n"; #Подключаемся к базе данных my $ds = 'DBI:mysql:' . $DATA{'DB'} . ':' .$DATA{'HOST'}; my $db = DBI->connect($ds, $DATA{'LOGIN'}, $DATA{'PASSW'}); if (!$db) { print "<div class=\"err\">Не удалось установить "; print "соединение с базой данных</div>"; &f_footer_user(); exit(); } $db->do("set names cp1251"); my $sth= $db->prepare("SELECT foto FROM image WHERE id=1"); $sth->execute(); my @row = $sth->fetchrow_array; my $image = "$row[0]"; my $query = CGI->new; open(my $FH, $image); my $picture = do { local $/ = undef; <$FH> }; close $FH; print $query->header(-type => 'image/jpeg'); binmode STDOUT; print $picture; print "<p>Следующий за картинкой текст</p>\n"; Заранее спасибо. |
Автор: Jimy 23.1.2011, 16:04 |
либо двумя запросами: 1. текст. В тексте будет HTML тег <img>, в котором будет указан путь к картинке, и прочие ее атрибуты. 2. картинка, которую браузер запросит для вставки в текст вместо тега <IMG>. Тогда, приведенный Вами код, это запрос №2. либо вставкой кода картинки прямо в HTML разметку: <img src="data:image/gif;base64,двоичный_код_изображения_закодированный_в_base64" /> тогда за один запрос можно отправить и картинку и "текст" |
Автор: joaquin 24.1.2011, 08:54 |
Спасибо за помощь.Подскажите пожалуста как связать два запроса.Если есть возможность предоставте пожалуста пример какого-либо кода. |
Автор: joaquin 24.1.2011, 09:40 |
Решено.Благодаря предоставленному ответу от Jimy,за что ему огромное спасибо! В основной файл main.pl (приведен ниже) вставил приведенный выше код image.pl через тег <IMG>: #!/usr/bin/perl #main.pl use CGI qw ( :standard ); #Задаем местанахождение файла конфигурации use lib "/home/web/cgi-bin/config"; #Подключаем файл конфигурации use test qw( :DEFAULT :admin &f_date_gm); print "Expired: Sun, 27 october 2010 07:00:00 GMT\n"; print "Last-Modified: " .&f_date_gm() ."GMT\n"; print "Cache-Control: no-store, no-cache, must-revalidate\n"; print "Pragma: no-cache\n"; print "Content-type: text/html\n\n"; print "<img src=\"image.pl\" alt=\"\"\/>"; print "<p>Hello</p>\n"; Только вот назрел вопрос относительно 2 метода ![]() |
Автор: shamber 24.1.2011, 11:32 |
joaquin, поищите по форуму, пример кода уже проскакивал здесь |