Ошибка FTP в Perl? - PullRequest
       1

Ошибка FTP в Perl?

0 голосов
/ 30 декабря 2011

Что-то не так в сценарии, потому что я просто не могу войти ..... И я уверен, что я использую правильное имя пользователя и пароль. (Не удается войти в систему Логин неверный.)

sub UploadToFTPServer()
{
my $filename = shift;


$ftp = Net::FTP->new($FTPSERVER, Debug => 0) ;
if ($ftp) {     
    eval {
        $ftp->login($USERNAME,$PASSWORD)   or warn "Cannot login ", $ftp->message;
        $ftp->binary();

        $ftp->putfile($filename) or warn "Cannot upload ($filename)", $ftp->message;
        $ftp->quit();
    };
}
else {
    warn "Cannot connect to $FTPSERVER: $@";
}
}

Ответы [ 4 ]

3 голосов
/ 30 декабря 2011

Запустите ваш скрипт с этим:

use strict;
use warnings;

Затем убедитесь, что Perl не пытается интерполировать что-либо в вашем un / pw.

my $USERNAME = 'myname@gmail.com'; ## notice the single quotes
my $PASSWORD = 'mypass';

Учитывая вашу ошибку, она должна работать с этими изменениями.Было бы легче поймать, если бы с самого начала использовались строгие и предупреждения прагмы.

0 голосов
/ 30 декабря 2011

Попробуйте $ ftp-> put вместо $ ftp-> putfile. Я не вижу путфайла в документации.

0 голосов
/ 30 декабря 2011

Вы уверены, что тестируете с того же IP?

Также попробуйте напечатать имя пользователя и пароль, заключив их в кавычки, как предложил gpojd.

0 голосов
/ 30 декабря 2011

Используйте модуль " Net :: FTP :: Simple "

@send = Net::FTP::Simple->send_files({
    username        => $user,
    password        => $pass,
    server          => $host,
    remote_dir      => $path,
    debug_ftp       => 0,
    files           => [
        $file,
    ],
});

print "The following files were retrieved successfully:\n\t",
    join("\n\t", @send), "\n"
        if @send;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...