我想用Perl来FTP一个有子目录的目录,里面有文件和图片。
我尝试使用 $ftp->rput()
在...之下 Net::FTP::Recursive
. 但这上传的所有文件在本地当前工作目录下。
有没有办法给出本地目录的路径,所有文件夹和文件都上传。请指导。
你需要临时改变自己的工作目录。
rput ( [FlattenTree => 1] [,RemoveLocalFiles => 1] )
递归的put方法调用。这将递归地把本地当前工作目录及其内容发送到ftp对象的当前工作目录下。
Perl的 内置 chdir
可以用来改变目录。使用 Cwd模块 来获取当前的,如果你需要回去。
use strict;
use warnings;
use Cwd;
use Net::FTP::Recursive;
# ...
# get the current directory
my $old_current_dir = getcwd();
# change directory to the one you want to upload
chdir('path/to/updloaddir');
# upload
$ftp->rput();
# change back
chdir($old_current_dir);