Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Изображение из БД на страничку

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Интернет
Предыдущая тема :: Следующая тема  
Автор Сообщение
IDb
Гость





СообщениеДобавлено: Вс Мар 23 2003 21:37    Заголовок сообщения: Изображение из БД на страничку Ответить с цитатой

Помогите, пожалуйста, разобраться с выводом картинки из базы данных на html страничку. Скрипт на Perl с использованием IBPerl.

Получаю из формы изображение и помещаю в БД следующим кодом:
use CGI qw(:all);
use IBPerl;
$query=new CGI;
$database = '/var/www/cgi-bin/test.gdb';

print "Content-type: text/html\n\n";

$filen = $query->param('im');
$ttt = $query->param('ttt');

&upload_file() if $filen ne '';

sub upload_file
{
$bytesread=read($filen,$buffer,1000000);
# соединение с БД
my $db = new IBPerl::Connection(
Path => $database,
User => 'sysdba',
Password => 'masterkey'
);
die "$db->{Error}\n" if ($db->{Handle} $db);
die "$tr->{Error}\n" if ($tr->{Handle} $tr,
SQL => "INSERT INTO TEST (TEXT, IM) VALUES (?, ?)");
die "$st->{Error}\n" if ($st->{Handle} execute($ttt, $buffer);
$st->close();
$tr->commit();
$db->disconnect();
}

Отрабатывает нормально.

А вот код, которым пытаюсь извлечь и отобразить картинку, текстовая строка нормально отображается.
# соединение с БД
my $db = new IBPerl::Connection(
Path => $database,
User => 'sysdba',
Password => 'masterkey'
);
# создание транзакции
my $tr = new IBPerl::Transaction(Database => $db);
die "$tr->{Error}\n" if ($tr->{Handle} $tr,
SQL => 'SELECT * FROM TEST');
die "$st->{Error}\n" if ($st->{Handle} execute;
while ($st->fetch(\%aa) == 0) {
print "".$aa{TEXT}."";

binmode STDOUT;
print "Content-Type: image/jpg\n\n";
print $aa{IM};
}
$st->close();
$tr->commit();
$db->disconnect();
В результате строка $aa{TEXT} нормально отображается, а вот вместо картинки текст Content-Type: image/jpg\n\n и куча символов, которые броузер смог отобразить.

Заранее благодарю
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Пн Мар 24 2003 11:39    Заголовок сообщения: А что это у тебя за Content-type страшный такой? Ответить с цитатой

Я вижу в твоем постинге две странные строки:
print "Content-type: text/html\n\n";
и
print "Content-Type: image/jpg\n\n";

Так вот, строка "Content-Type: ..." д.б. одна, а ее значением для GIF-картинки д.б. "image/gif".

PS: Зайди через Telnet на любой WWW-сервер и попроси GIF-картинку. А потом сравни то, чт там дебе выдадут, с выводом своего скрипта.
Вернуться к началу
IDb
Гость





СообщениеДобавлено: Пн Мар 24 2003 20:59    Заголовок сообщения: Re: А что это у тебя за Content-type страшный такой? Ответить с цитатой

Картинка jpg, и кроме нее еще на странице куча текста должна быть.
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Вт Мар 25 2003 00:37    Заголовок сообщения: А ты что, пытаешься их в одном скрипте вывести или как? Ответить с цитатой

Судя по твоей фразе "а вот вместо картинки текст Content-Type: image/jpg\n\n и куча символов, которые броузер смог отобразить", кто-то (либо ты, либо Apache) успевает вывести "Content-Type: text/html\n\n" до того, как та выводишь "Content-Type: image/jpg\n\n". Выясняй, кто это делает, и пресекай...
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Интернет Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...