phpseclib を使用してサーバーに接続し、\Net_SFTP を使用してサーバーにファイルをアップロードします。しかし、大きなディレクトリをアップロードするにはどうすればよいでしょうか? Symfony Finder を使用して、ディレクトリ内のすべてのローカル ファイル パスを収集します。
$finder = new Finder();
$files = $finder
->files()
->in($local);
foreach ($files as $file) {
$from = $file->getRealPath();
$to = str_replace($local, '', $from);
$to = rtrim($remote, '/') . '/' . ltrim($to, '/');
$sftp->put($to, $from, NET_SFTP_LOCAL_FILE);
}
ただし、ルートファイルのみをアップロードします。phpseclib は、新しいファイルのサブディレクトリを作成しません。
phpseclibを使用してサーバーにフォルダをアップロードするには?