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


Автор: Sashenka_kpi 16.8.2007, 17:46
При попытке узнать размер файла на удаленном FTP-сервере возникает следующая ошибка
getsockname() on closed socket Symbol::GEN0.
С чем это может быть связано?

Код:

#!/usr/bin/perl -w
use Net::FTP;
use constant HOST => 'хост';
use constant DIR => 'директория';
use constant FILE => 'файл';
my $ftp = Net::FTP->new(HOST)
    or die "Couldn't connect: $@\n";
$ftp->login('логин', 'пароль')        or die $ftp->message;
$ftp->cwd(DIR)            or die $ftp->message;
$ftp->binary();
$size = $ftp->size(FILE)            or die $ftp->message;
$ftp->quit;
print $size;
warn "File retrieved successfully.\n";

Автор: amg 17.8.2007, 06:12
Спросил у Гугла, и тот ответил, что люди сталкивались с подобной проблемой, и проблема эта - в железе. "The solution to our problem was to get the network equipment configured properly..." http://www.nntp.perl.org/group/perl.libnet/2001/06/msg24.html

Автор: Sashenka_kpi 17.8.2007, 10:03
Я не думаю, что проблема в железе, поскольку сам файл я могу получить без проблем. Ошибка возникает при попытке получить размер файла.

Автор: amg 17.8.2007, 12:11
У меня, к сожалению (к счастью ?), эта ошибка не воспроизводится. Больше сказать ничего.

Автор: Nab 17.8.2007, 12:20
Вполне может быть, что как на многих системах там не сам файл а симлинк на него...  посмотрите просто ftp клиентом, если он показывает для файла размер в несколько десятков байт и в каталоге размер всех файлов одинаков, то это именно тот случай...

Как с таким бороться я не знаю... к примеру у меня FAR не показывает реальный размер даже при закачке... только по полному получению я могу его узнать...

Автор: Sashenka_kpi 17.8.2007, 13:38
Если зайти фтп-клиентом, размер файла 1.7Г. Так что это, наверное, не тот случай.. 

Автор: amg 17.8.2007, 15:57
Sashenka_kpi,  попробуйте дебаг включить, может что скажет
Код

my $ftp = Net::FTP->new(HOST, Debug => 1)

Автор: Sashenka_kpi 17.8.2007, 16:40
К сожалению, показывает тоже самое.

Автор: tzirechnoy 21.1.2012, 20:14
Да Вы хотя бы в сообщения об ошыбках вставьте информацыю -- что это, и на каком этапе происходит.

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