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