Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP将文件夹重命名为SFTP服务器上的两个目标文件夹_Php_Sftp - Fatal编程技术网

使用PHP将文件夹重命名为SFTP服务器上的两个目标文件夹

使用PHP将文件夹重命名为SFTP服务器上的两个目标文件夹,php,sftp,Php,Sftp,此功能正在运行,可将文件夹从主文件夹移动到名为destinationfolder1的文件夹中。我还想将文件夹移动到另一个文件夹。名为backup的文件夹,与destinationfolder1位于同一位置/级别。这可能吗 ssh2_sftp_rename($sftp, 'mainfolder/' . $entry , 'destinationfolder1/' . $entry ); 不能将文件/文件夹“重命名”为两个文件夹。那是胡说八道。您必须创建文件/文件夹的副本 核心SFTP协议中没有

此功能正在运行,可将文件夹从主文件夹移动到名为
destinationfolder1
的文件夹中。我还想将文件夹移动到另一个文件夹。名为
backup
的文件夹,与
destinationfolder1
位于同一位置/级别。这可能吗

ssh2_sftp_rename($sftp, 'mainfolder/' . $entry  , 'destinationfolder1/' . $entry );
不能将文件/文件夹“重命名”为两个文件夹。那是胡说八道。您必须创建文件/文件夹的副本

核心SFTP协议中没有“复制”功能。有
copy file
SFTP扩展名。但是PHP SSH2函数不支持它。您可能可以将扩展添加到开源中。但实际上很少有SFTP服务器支持该扩展。尤其是最广泛使用的SFTP服务器OpenSSH不支持它。所以这可能不值得一试

如果您具有服务器的shell访问权限,作为一种解决方法,您可以使用以下命令执行
cp
shell命令:

如果您没有shell访问权限,您唯一的选择是下载文件/文件夹并将其重新上载到其他文件夹


另请参见

不能将文件/文件夹“重命名”为两个文件夹。那是胡说八道。您必须创建文件/文件夹的副本

核心SFTP协议中没有“复制”功能。有
copy file
SFTP扩展名。但是PHP SSH2函数不支持它。您可能可以将扩展添加到开源中。但实际上很少有SFTP服务器支持该扩展。尤其是最广泛使用的SFTP服务器OpenSSH不支持它。所以这可能不值得一试

如果您具有服务器的shell访问权限,作为一种解决方法,您可以使用以下命令执行
cp
shell命令:

如果您没有shell访问权限,您唯一的选择是下载文件/文件夹并将其重新上载到其他文件夹



另请参见

您是否设法移动或复制?因为您只能移动/重命名到一个目标。但是,您可以通过多次调用此函数(如果有多个目的地,则不是一次性)将im从mailfolder移动到多个目的地,但需要它将文件夹放在两个目录中。当您移动时,它不再存在。您需要的是一份拷贝和一次移动,或者两份拷贝和一次删除备份文件夹包含在许多文件夹中。destinationfolder1文件夹一直在更改。最好的方法是确定副本和一次删除。这可以在一个过程中完成吗?您可以移动或复制吗?因为您只能移动/重命名到一个目标。但是,您可以通过多次调用此函数(如果有多个目的地,则不是一次性)将im从mailfolder移动到多个目的地,但需要它将文件夹放在两个目录中。当您移动时,它不再存在。您需要的是一份拷贝和一次移动,或者两份拷贝和一次删除备份文件夹包含在许多文件夹中。destinationfolder1文件夹一直在更改。最好的方法是确定副本和一次删除。这能在一个过程中完成吗?
ssh2_exec($connection, 'cp -r /source/path/file /backup/file');