Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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". Выясняй, кто это делает, и пресекай... |
|
Вернуться к началу |
|
|
|