Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> картинка + текст, вывод картинок на страницу с описанием 
V
    Опции темы
joaquin
Дата 23.1.2011, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 9.10.2010

Репутация: нет
Всего: нет



Добрый день уважаемые форумчане.
Есть задача вывода картинок из 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";


Заранее спасибо.
PM MAIL   Вверх
Jimy
Дата 23.1.2011, 16:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



либо двумя запросами:
1. текст. В тексте будет HTML тег <img>, в котором будет указан путь к картинке, и прочие ее атрибуты.
2. картинка, которую браузер запросит для вставки в текст вместо тега <IMG>.

Тогда, приведенный Вами код, это запрос №2.

либо вставкой кода картинки прямо в HTML разметку:
<img src="data:image/gif;base64,двоичный_код_изображения_закодированный_в_base64" />
тогда за один запрос можно отправить и картинку и "текст"


PM   Вверх
joaquin
Дата 24.1.2011, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 9.10.2010

Репутация: нет
Всего: нет



Спасибо за помощь.Подскажите пожалуста как связать два запроса.Если есть возможность предоставте пожалуста пример какого-либо кода.
PM MAIL   Вверх
joaquin
Дата 24.1.2011, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 9.10.2010

Репутация: нет
Всего: нет



Решено.Благодаря предоставленному ответу от 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 методаsmile Можно поподробней относительно base64.Желательно с примером кода.
PM MAIL   Вверх
shamber
Дата 24.1.2011, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: нет
Всего: 18



joaquin, поищите по форуму, пример кода уже проскакивал здесь
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.