通过ftp将gif发送到不同文件夹中的服务器

时间:2015-04-29 08:58:41

标签: perl ftp

我使用perl将gif发送到服务器。我想将一些名为“降水”和其他GIF的文件夹移动到名为wind的文件夹中。现在使用下面的代码(好吧,它是我使用的代码的一部分)我发送它们,但代码中有一些错误,因为我发现所有gif在同一个文件夹中,在第一个,沉淀。任何的想法?

use BSD::Resource;
use File::Copy;
use Net::FTP;


#ACCIONS  send gif to the folder precipitation
$ftp->cwd("html/pen/precipitation");
foreach my $file ($ftp->ls("Pl*.gif")){
$ftp->delete($file) or die "Error in delete\n";
}
my @arxius = glob("/home/gif/Pen/Pl*.gif");
foreach my $File(@arxius){
$ftp->binary();
$ftp->put("$File");
}

#ACCIONS  send gif to the folder wind
$ftp->cwd("html/pen/wind");
foreach my $file2 ($ftp->ls("vent*.gif")){
$ftp->delete($file2) or die "Error in delete\n";
}
my @arxius2 = glob("/home/gif/Pen/vent*.gif");
foreach my $File(@arxius2){
$ftp->binary();
$ftp->put("$File");
}

1 个答案:

答案 0 :(得分:2)

该行为表明对cwd()的第二次调用失败。

这很可能是因为您使用的是相对而非绝对路径:第二个cwd()调用是相对于第一个中设置的位置。它会尝试转到html/pen/precipitation/html/pen/wind,而这似乎不是您想要的。

在第二次../wind来电中使用绝对路径或cwd()

此外,您应该检查cwd()命令是否成功,如果您没有更改到预期目录,请停止。否则,您在错误的位置执行可能具有破坏性的操作(如删除文件)!cwd()如果有效则返回true,否则返回false。请参阅Net::FTP documentation