Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача рисунков по сети 
:(
    Опции темы
Phantom_of_the_Opera
Дата 4.5.2004, 02:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня написано что-то типа:

$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET => "http://....../..jpg");
$res = $ua->request($req);
open(F, ">..");
print F $res->content;

Полученный файл представляет собой либо радужные полосы, либо вообще не отображается!!!
Подскажите, будьте добры!
  Вверх
korob2001
Дата 4.5.2004, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Насколько я понял, то ты пытаешься сохранить файл изображения в Windows и всё проходит без ошибок, но файл сохраняется повреждённым? Если да, то сразу после открытия файла вызови функцию binmode( дескриптор файла );
Скобки можешь опустить, как тебе больше нравится.

Вот пример:
Код

open( F, "> .." ) or die $!
binmode( F );
print F $res->content;


Удачи. ;)


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
korob2001
Дата 5.5.2004, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Хотя я бы на твоём месте использовал бы модуль LWP::Simple, мне кажется это будет гораздо проще.
Вот тебе пример:
Код

#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::Simple;

#Путь к каталогу с фотками
my $url    = 'http://your_site.ru/mypict';

# Имя каталога куда будем сохранить фотки
my $path = 'download';

# Имена файлов
my @photos = qw( ph1.gif myphoto.jpg );

# Здесь мы будем хранить первую букву имени файла
my $first_letter;
           
# Создадим каталог который указали в переменной $path,
# но только в том случае если он не существует
mkdir( "$path", 0755 ) or die $! unless -e $path;

# Проходим в цикле весь массив с именами фалов
while ( my $file = shift( @photos ) ) {

      # Тащим из каждого названия файла первую букву
      # и переводим её в верхний регистр
      $first_letter = uc( substr( $file,0,1 ) );  
     
      # Если файл уже есть, значит мы его больше сохранять не
      # будем. Переходим к следующей итерации цикла.
      next if -e "$path/$first_letter/$file";
                                               
      # В следующей строке в каталоге, куда
      # мы указали будут складываться файлы,
      # создаём каталог с именем первой буквы
      # имени файла, но делаем это только в том
      # случае если такого каталога пока ещё нет
      mkdir("$path/$first_letter", 0755)
                     or die $! unless -e "$path/$first_letter";

   # Следующая строка просто подгружает нужный
   # нам файл, в нужное место;)
   getstore( "$url/$file", "$path/$first_letter/$file" );

   # Следующие строки дают нам знать, что происходит
   # в данный момент
   print "File ( $path/$first_letter/$file ) successfuly saved\n";
   print '-' x 80, "\n";
}  # Завершили цикл

Вот и всё. С помощью того же LWP::Simple можно создать и список файлов. Заметь, если убрать коментарии, то прога получится очень даже не большая. Вообще-то я писал эту прогу, когда мне нужно было скачать все модули с www.activestate.com . Именно потому я сделал так, что бы она сортировала файлы в отдельные папки, по алфавиту.

Для запуска, просто вызови эту прогу из командной строки.

Удачи.

Это сообщение отредактировал(а) korob2001 - 5.5.2004, 02:31


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Phantom_of_the_Opera
Дата 10.5.2004, 05:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо, korob2001, очень помог!!!

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.