FTP目录上传,perl
如何将整个文件夹上载到ftp服务器? 我正在努力做到以下几点:FTP目录上传,perl,perl,file,file-upload,ftp,Perl,File,File Upload,Ftp,如何将整个文件夹上载到ftp服务器? 我正在努力做到以下几点: $FTP->binary(); $FTP->mkdir($pfolder); $FTP->put("$pPath$pfolder"); 当然,我在认证之前就这么做了。。只是当我运行代码时,会出现以下消息 无法打开本地文件C:\xampp\htdocs\MyProject:权限被拒绝 在projectUpload.pl第41行 --编辑-- 我找到了解决方案,下面是代码: sub upload {
$FTP->binary();
$FTP->mkdir($pfolder);
$FTP->put("$pPath$pfolder");
当然,我在认证之前就这么做了。。只是当我运行代码时,会出现以下消息
无法打开本地文件C:\xampp\htdocs\MyProject:权限被拒绝
在projectUpload.pl第41行
--编辑--
我找到了解决方案,下面是代码:
sub upload {
my ( $bpath , $path , $FTP ) = @_;
$path .= '/' unless $path =~ /\/$/;
for my $i ( glob ( "$path*" ) ) {
$i =~ /(?:\/(.*))/;
if ( not -d $i ) {
if ( -f $i ) {
$FTP->put ( $i , $1 ) ;
}
} else {
$FTP->mkdir ( $1 ) ;
upload ( $bpath , $i , $FTP ) if -d $i ;
}
}
}
- 如果您使用的是标准的
模块,则必须一次上载一个文件。那里 但是,还有其他模块允许您上载/镜像整个目录树Net::FTP
- 您可能希望在上载文件之前转到您创建的目录。A
$FTP->cwd($pfolder)代码>应该可以做到这一点
- “权限被拒绝”的问题可能是因为
是一个目录(我猜)。在本地,对该目录执行MyProject
,使用chdir()
打开它,然后使用opendir()
迭代文件,并一次上载一个文件readdir()
rput ( [FlattenTree => 1] [,RemoveLocalFiles => 1] )
从
Net::FTP::Recursive
对,但是如果MyProject中有更多的目录呢?