【发布时间】:2023-03-11 17:49:01
【问题描述】:
use Net::FTP;
$ftp = Net::FTP->new($host) or die "Cannot connect to $host: $@";
$ftp->binary;
$ftp->login($user, $pass) or die "Cannot login: ", $ftp->message;
$ftp->cwd("downloads") or die "Cannot change working directory to downloads: ", $ftp->message;
@ls = $ftp->ls;
if (@ls)
{
$ftp->get($ls[0]) or warn "Cannot get $ls[0]: ", $ftp->message;
$ftp->delete($ls[0]) or warn "Cannot delete $ls[0]: ", $ftp->message;;
}
$ftp->quit;
当我运行上面连接到远程主机的 FTP 服务器的代码时,它试图在downloads 目录中获取一个 PDF 文件,但传输的 PDF 文件比原始文件小 8 个字节,所以它无法在 PDF 阅读器中正确打开。
有什么我做的不对吗? FTP 服务器是 Ubuntu 上的 vsftpd。
【问题讨论】:
-
CRLF→LF 翻译由
->binary()修复? -
@ikegami 我通过在登录之后而不是之前将
->binary()来修复它。 -
啊,我没注意到你曾尝试使用
->binary。是的,当您未登录时服务器会忽略命令,我并不感到惊讶 :) 随意自我回答