Forum Webscript.Ru

Программирование => Perl => Тема начата: Hob от 26 Декабря 2006, 19:10:17

Название: Копирование картинки
Отправлено: Hob от 26 Декабря 2006, 19:10:17
Здравствуйте, не подскажете как скопировать картинку \'http://...../image.gif\' на сервер сайта?

На сколько я понимаю нужно считать контент этой картинки и просто сохранить его в файл.
Только вот как считать этот контент?
Название: Копирование картинки
Отправлено: NeoNox от 26 Декабря 2006, 19:57:15
perldoc LWP::Simple
Название: Копирование картинки
Отправлено: Hob от 26 Декабря 2006, 20:13:47
NeoNox
т.е вот так должно работать?

use LWP::Simple;
my $url = "http://.../";
my $fn = "image.gif";
my $content = get($url.$fn);

my $file = \'/www/vhosts/.../\'.$fn;
open (IMG, ">$file") or die ("Cannot open file $file");
binmode IMG;
print IMG while (<$content>);
close (IMG);
Название: Копирование картинки
Отправлено: NeoNox от 26 Декабря 2006, 20:23:36
ДА, если у вас на сервере исходящие запросы не запрещены
Название: Копирование картинки
Отправлено: xames от 26 Декабря 2006, 23:21:13
НЕТ! работать не должно. Ошибка в коде.
--------------------------------------
my $content = get($url.$fn); # получем скаляр а не дескриптор
...
print IMG while (<$content> ); # ошибка
-------------------------------------
правильно будет так:
print IMG $content;
Название: Копирование картинки
Отправлено: Hob от 27 Декабря 2006, 12:31:28
что то у меня файл нулевой создаётся, хотя контент  получает нормальный:(

xames
без <> не работает.
Название: Копирование картинки
Отправлено: xames от 27 Декабря 2006, 14:52:49
use LWP::Simple;
my $content = get(\'http://forums.webscript.ru/avatar.php?userid=174&dateline=1022747124\');
print while (<$content> );  # ничего не выводит
print while <$content> ;   # ничего не выводит
print $content; # выводит контент

Цитировать
Hob:
xames без <> не работает.

Не верю!
Название: Копирование картинки
Отправлено: Hob от 27 Декабря 2006, 15:02:11
Цитировать
Не верю!


open (IMG, ">$file") or die ("Cannot open file $file");
binmode IMG;
print IMG $content;
close (IMG);

вот так да, работает:)

Спасибо.