[Ruby] Проблема с выводом графики из базы данных в CGI

Kachalov Anton mouse at linux.ru.net
Mon Nov 25 10:36:38 MSK 2002


Ilya Palagin пишет:

> Здравствуйте,
>
> Я пытаюсь организовать вывод графических файлов из mysql базы, где они 
> хранятся в виде BLOB, в CGI.  Рубиновый скрипт для вывода картинок не 
> работает (причем в командной строке все в порядке), но аналогичный 
> перловый - без проблем.
>
> ----------------------
> Вот базовый скрипт, который вызывает getimage.pl и getimage.rbx, но 
> работает при этом только getimage.pl.
>
> #!/usr/bin/ruby -w
> require 'cgi'
> cgi = CGI.new("html3")
> cgi.out(){
>   cgi.html{
>     cgi.body{
>           "<img src = /cgi-bin/getimage.pl>" +
>           cgi.br + cgi.hr +
>           "<img src = /cgi-bin/getimage.rbx>"
>     }
>   }
> }
>
> ------------------------
> Перловый скрипт для получения картинок (успешно работает)
>
> #!/usr/bin/perl -w
> use strict;
> use DBI;
> my $dbh = DBI->connect('DBI:mysql:faxarch', 'fax', 'pwd');
> my $sql = "SELECT image FROM faxdata WHERE id=1";
> my $sth = $dbh -> prepare($sql); $sth->execute;
> while (my @row = $sth->fetchrow) {
>     print "Content-Type: image/jpeg\n\n";
>     print "$row[0]";
> }
>
> ---------------------
> А вот такой же рубиновый, но почему-то не работает при вызове из базового
>
> #!/usr/bin/ruby -w
> require 'dbi'
> dbh = DBI.connect('DBI:Mysql:faxarch', 'faxadm', '3Apro$Y')
> sql = %Q{ SELECT image FROM faxdata WHERE id=1 }
> sth = dbh.prepare(sql); sth.execute
> print "Content-Type: image/jpeg\n\n"
> print((sth.fetch)[0])
> dbh.disconnect
>
а в логах апача что пишет?И еще - "Content-type" лучше выдавать 
средствами CGI, а не руками, тем более, данный заголовок не 
соответствует спецификации - строка должна заканчиваться не "\n", а "\r\n"

Rgds,
Anton

-- 
ALTLinux Team
http://www.altlinux.ru
LRN Team
http://www.lrn.ru
FreeCraft Team
http://freecraft.sourceforge.net/





More information about the Ruby mailing list