Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Net::FTP


Автор: TwiSteR 20.6.2005, 13:40
Здравствуйте уважаемые,

есть некий код
Код

#!/usr/bin/perl
use strict;
use Net::FTP;
my $ftp = Net::FTP->new("my_host", Debug => 0);
$ftp->login("my_login",'***pass***');
$ftp->cwd("/bbs");
$ftp->put("c:/zip.zip","zzz.zip");
$ftp->quit;


Файл zip.zip размером в 19 метров, так вот:
Конект происходит и файл выкладывается но вес его 223 байта и ессесно при открытии не верный формат файла.
Я копать умею, куда ?

Автор: korob2001 20.6.2005, 14:06
Попробуй вместо метода put заюзать write( BUFER, SIZE, [TIMEOUT] ). Извини протестировать не могу.

Автор: TwiSteR 20.6.2005, 14:18
Код

$ftp->write("c:/someZip.zip");


так тоже самое smile

Автор: Kiber_rat 21.6.2005, 01:49
Может стоит попробовать задать
Код
my $ftp = Net::FTP->new("my_host", Debug => 0,Passive=>1);

Автор: TwiSteR 21.6.2005, 07:32
Код

my $ftp = Net::FTP->new("my_host", Debug => 0,Passive=>1);


Неа блин, так тоже не катит

Пробовал на разных тачках на разные серванты, но везде одно и тоже smile

Автор: Sadok 21.6.2005, 08:56
TwiSteR
Если файл бинарный, то пробовать (смотри строку №7, никак ее не выделить):
Код

#!/usr/bin/perl
use strict;
use Net::FTP;
my $ftp = Net::FTP->new("my_host", Debug => 0);
$ftp->login("my_login",'***pass***');
$ftp->cwd("/bbs");
$ftp->binary();
$ftp->put("c:/zip.zip","zzz.zip");
$ftp->quit;


Для техтового соответственно $ftp->ascii();

Еще я бы chomp () делал для имен файлов, если они из переменной беруться..

Автор: dimes 21.6.2005, 09:03
TwiSteR
для начала нужно перехватить ошибку
Код

$ftp->put("c:/zip.zip","zzz.zip") or print $ftp->message;

Потом желательно оставить Passive=>1 как предложил Kiber_rat это поможет в будующем
Затем я так понимаю ты передаеш бинарный файл?
Обязательно укажи $ftp->binary; до $ftp->put


Добавлено @ 09:05
Цитата(TwiSteR @ 20.6.2005, 15:18)

$ftp->write("c:/someZip.zip");

так тоже самое

Что то ты не то делал... http://search.cpan.org/~gbarr/libnet-1.19/Net/FTP.pm#THE_dataconn_CLASS

Автор: TwiSteR 21.6.2005, 10:30
Sadok, dimes

Огромный 10х

с этим полегчало
Код

$ftp->binary();


Вот ещё вопросик:

Как бы сделать, что-то наподобии gauge в дельфи. Ну я имею ввиду чтобы прогресс передачи выводить на stdout ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)