此功能正在运行,并将文件夹从mainfolder移动到一个名为destinationfolder1
的文件夹。我想将文件夹也移动到另一个文件夹。名为backup
的文件夹,与destinationfolder1
在同一个地方/级别。这可能吗?
ssh2_sftp_rename($sftp, 'mainfolder/' . $entry , 'destinationfolder1/' . $entry );
您不能将文件/文件夹“重命名”为两个文件夹。那是胡说八道。您必须创建文件/文件夹的副本。
核心SFTP协议中没有“复制”功能。这有copy-file
SFTP扩展。但PHP SSH2功能不支持它。您可以将扩展名添加到开源phpseclib library。但实际上很少有SFTP服务器支持扩展。特别是最广泛使用的SFTP服务器OpenSSH不支持它。所以这可能不值得尝试。
如果你有一个shell访问服务器,作为一种解决方法,你可以使用cp
执行ssh2_exec
shell命令:
ssh2_exec($connection, 'cp -r /source/path/file /backup/file');
如果您没有shell访问权限,则唯一的选择是下载文件/文件夹并将其重新上载到其他文件夹。