|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Pavel V. Ammosov 2:5020/52 26 Apr 2001 22:10:04 To : All Subject : Re: Content-type + Image + "Сервер закрыл соединие"... -------------------------------------------------------------------------------- >Пытаюсь генерировать и выдавать иконки следующим образом: > >(Можно не особо разбираться с кодом - пояснение вопроса внизу) > >=== cut === >#!/usr/bin/perl > >use CGI qw/:standard/; >use Image::Magick; > >my $url=param("url"); Опасайся URL типа file:// > >$url=~s!:/!://!; > >my $type="plain/text"; >my $ext="txt"; > >if(substr($url,-4) eq ".jpg") {$type="image/jpeg", $ext="jpg"} >if(substr($url,-4) eq ".gif") {$type="image/gif", $ext="gif"} >if(substr($url,-4) eq ".png") {$type="image/png", $ext="png"} > >my($image, $x); >$image = Image::Magick->new; Тут тип картинки надо указать, например: $image = Image::Magick->new(magick=>'GIF'); > >open HFILE,"lynx -dump $url|"; Зачем тут lynx, когда есть LWP? Hо, даже если ты используешь lynx, стоит проверять на ошибки. >$x = $image->Read(file=>HFILE); >warn "$x" if "$x"; >close HFILE; close HFILE or die "lynx: $!"; > >print "Content-type: $type\n\n"; > >$x = $image->Resize(geometry=>'200x150'); >warn "$x" if "$x"; > >$x = $image->Write("-"); >warn "$x" if "$x"; > >unlink("image.$ext"); >=== cut === > >Этот код берёт из URL параметр url=, скачивает указанную картинку из Интернет, >масштабирует её в размеры 200x150 посредством ImageMagick и выдаёт её как >результат. > >Так вот, если я качаю полученный файл через wget > >wget http://someserver/cgi-bin/tn.cgi?url=http://otherserver/image.jpg > >то всё ок. файл выкачивается и тот, что надо. > >Во всех остальных случаях (IE, Netscape, Opera, Reget, как по прямой ссылке, >так и через <img src=...>) в результате выдаётся ошибка. А в error_log есть чего-нибудь? Браузеры иногда теряют второй / в http://, при передаче URL в параметрах, посмотри можкт у тебя такое. >Браузеры просто >выдают крестик вместо картинки, ReGet выдаёт: -- Pavel Ammosov O \ apavel@aha.ru __ ) http://isabase.philol.msu.ru/~apavel/ ) wget -O - isabase.philol.msu.ru/~apavel/key.asc|pgp -fka O / --- slrn/0.9.6.3 (Linux) * Origin: Zenon N.S.P. news server (2:5020/52.0) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/82752ef0615c1.html, оценка из 5, голосов 10
|