Perl中的FTP上传目录和子目录

问题描述 投票:1回答:2

我想用Perl来FTP一个有子目录的目录,里面有文件和图片。

我尝试使用 $ftp->rput() 在...之下 Net::FTP::Recursive. 但这上传的所有文件在本地当前工作目录下。

有没有办法给出本地目录的路径,所有文件夹和文件都上传。请指导。

perl ftp
2个回答
3
投票

你需要临时改变自己的工作目录。

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);
© www.soinside.com 2019 - 2024. All rights reserved.