2012-04-19 9 views
0

Perlでは、ファイルをftpしようとしましたが、リモートサーバのファイルはゼロサイズです。Perl FTPゼロサイズファイル

$ftp = new Net::FTP($URL); 
$ftp->put($local_file, $remote_file); 

ローカルファイルは空ではありませんが、なぜftp-edファイルが空であるのでしょうか?

答えて

4

ドキュメントをチェックしましたか? http://search.cpan.org/dist/libnet/Net/FTP.pm 具体的には、匿名で接続している場合でもログインする必要があり、すべてのコードの戻りコードを確認する必要があります。ここで
はCPANページから概要です:

use Net::FTP; 

$ftp = Net::FTP->new("some.host.name", Debug => 0) 
    or die "Cannot connect to some.host.name: [email protected]"; 

$ftp->login("anonymous",'[email protected]') 
    or die "Cannot login ", $ftp->message; 

$ftp->cwd("/pub") 
    or die "Cannot change working directory ", $ftp->message; 

$ftp->get("that.file") 
    or die "get failed ", $ftp->message; 

$ftp->quit; 
+0

ログインに問題はありません。ファイルはftp-edされたサーバーには、唯一の問題は、サイズが0です – user595234

+0

@ user595234、残りのアドバイス(あなたが持っているエラーを確認)が適用されます。ありがとう。 – ikegami

0

あなたが経験している何の問題を調べるには、次のように、コードを変更してください:

$ftp = new Net::FTP($URL); 
$ftp->put($local_file, $remote_file) or die $ftp->message; 

ほとんどの場合、この変更はにあなたに十分な情報が得られます問題を解く。

+0

私はその理由を見つけた。私はftpの前にファイルハンドラを閉じなかった。少なくともゼロサイズの代わりに私に何かエラーを与えるべきである – user595234

+0

@ user595234 - 素晴らしい。あなたが私を助けてくれたと思えば、あなたからアップヴォートと受け入れを受けるのはいいでしょう。ありがとう。 –