簡體   English   中英

使用 PHP 將文件夾重命名為 SFTP 服務器上的兩個目標文件夾

[英]Rename folder to two destination folders on SFTP server with PHP

此功能正在工作並將文件夾從 mainfolder 移動到一個名為destinationfolder1的文件夾。 我也想將文件夾移動到另一個文件夾。 名為backup的文件夾,與destinationfolder1位於同一位置/級別。 這可能嗎?

ssh2_sftp_rename($sftp, 'mainfolder/' . $entry  , 'destinationfolder1/' . $entry );

您不能將文件/文件夾“重命名”為兩個文件夾。 那是胡說八道。 您必須創建文件/文件夾的副本。

核心 SFTP 協議中沒有“復制”功能。 為此有copy-file SFTP 擴展。 但是 PHP SSH2 函數不支持它。 您也許可以將擴展添加到開源phpseclib 庫 但實際上很少有 SFTP 服務器支持該擴展。 在最廣泛使用的 OpenSSH SFTP 服務器中,只有最近的9.0 版本才支持它。

如果您對服務器具有 shell 訪問權限,作為一種解決方法,您可以使用ssh2_exec執行cp shell 命令:

ssh2_exec($connection, 'cp -r /source/path/file /backup/file');

如果您沒有 shell 訪問權限,您唯一的選擇是下載文件/文件夾並將其重新上傳到另一個文件夾。


另請參閱在 SFTP 會話中,是否可以將一個遠程文件復制到同一遠程 SFTP 服務器上的另一個位置?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM