dew 发表于 2018-8-30 12:56:08

PERL FTP模块

package MYFTP;  
use Net::FTP;
  
sub new
  
{
  
my $class = shift;
  
#一个空的引用
  
my $ref = {};
  
#将引用和对象绑定
  
bless($ref,$class);
  
#返回引用
  
return $ref;
  
}
  
#FTP下载文件
  
sub DownLoadFtpFile
  
{
  
my $ref = shift;
  
my $FtpServer = shift;
  
my $Ftpport = shift;
  
my $Ftpuser = shift;
  
my $FtpPassWord = shift;
  
my $FtpLocalSavePath = shift;
  
my $FtpRemotePath = shift;
  
my @FtpDownloadFile = @_;
  
print "\nFtp 正在建立连接 IP:$FtpServer 端口:$Ftpport 用户名:$Ftpuser密码:$FtpPassWord \n";
  
my $ftp = Net::FTP->new($FtpServer, Port=>$Ftpport, Debug => 0, Timeout => 600) or die "Cannot connect.\n";
  
print "\n连接成功,开始登陆.......\n";
  
$ftp->login($Ftpuser, $FtpPassWord) or die "Could not login.\n";
  
print "\n登陆成功,开始下载文件.......\n";
  
$ftp->cwd($FtpRemotePath) or die "Cannot change working directory.\n";
  
#文件全部下载成功退出死循环
  
while(@FtpDownloadFile)
  
{
  
my $Index = 0;
  
my $ArraySize = @FtpDownloadFile;
  
foreach my $File (@FtpDownloadFile)
  
{
  
my $FtpDownLocalSavePath = $FtpLocalSavePath . "/$File";
  
my $Return = $ftp->get($File, $FtpDownLocalSavePath);
  
if($Return eq undef)
  
{
  
print "\n下载$File文件失败\n";
  
next;
  
}
  
print "\n下载$File文件成功\n";
  
delete $FtpDownloadFile[$Index];
  
$Index++;
  
}
  
}
  
print"\n全部下载成功.......\n";
  
$ftp->quit;
  
}
  
#FTP上传载文件
  
sub UpLoadFtpFile
  
{
  
my $ref = shift;
  
my $FtpServer = shift;
  
my $Ftpport = shift;
  
my $Ftpuser = shift;
  
my $FtpPassWord = shift;
  
my $FtpRemotePath = shift;
  
my @FtpUploadFile = @_;
  
print "\nFtp 正在建立连接 IP:$FtpServer 端口:$Ftpport 用户名:$Ftpuser密码:$FtpPassWord \n";
  
my $ftp = Net::FTP->new($FtpServer, Port=>$Ftpport, Debug => 0, Timeout => 600) or die "Cannot connect.\n";
  
print "\n连接成功,开始登陆.......\n";
  
$ftp->login($Ftpuser, $FtpPassWord) or die "Could not login.\n";
  
print "\n登陆成功,开始上传文件.......\n";
  
$ftp->cwd($FtpRemotePath) or die "Cannot change working directory.\n";
  
#文件全部下载成功退出死循环
  
while(@FtpUploadFile)
  
{
  
my $Index = 0;
  
foreach my $File (@FtpUploadFile)
  
{
  
my $Return = $ftp->put($File);
  
if($Return eq undef)
  
{
  
print "\n上传$File文件失败\n";
  
next;
  
}
  
print "\n上传$File文件成功\n";
  
delete $FtpUploadFile[$Index];
  
$Index++;
  
}
  
}
  
print"\n全部上传成功.......\n";
  
$ftp->quit;
  
}
  
#模块结束标识
  
1;


页: [1]
查看完整版本: PERL FTP模块