Приведенный ниже скрипт работает успешно.
Получение файла с одного сервера на другой
if(ssh2_scp_recv($conn, '/var/www/html/captures/store/2016/04/HK/15721022890870/test/vcredist.bmp',
'/var/www/html/captures/store/2016/04/HK/15721022890870/test/vcredist.bmp')){
echo "\n recevied \n";
}else{
echo "\n not recevied\n";
}
Но вместо того, чтобы получать только статический файл, я хочу получить папку со всем ее содержимым внутри.
В приведенном выше примере каталог, который я хотел бы получить на локальном сервере: «15721022890870»
/var/www/html/captures/store/2016/04/HK/15721022890870/
Я пробовал код ниже, но не работает,
На удаленном сервере есть каталог, а на локальном сервере нет, поэтому я хочу создать каталог, а затем скопировать все его содержимое внутрь
if(ssh2_scp_recv($conn, '/var/www/html/captures/store/2016/04/HK/15721022890870/',
'/var/www/html/captures/store/2016/04/HK/')){
echo "\n recevied done \n";
}else{
echo "\n not done \n";
}
<?php
$username = "your_username";
$password = "your_pass";
$url = 'your_stp_server_url';
// Make our connection
$connection = ssh2_connect($url);
// Authenticate
if (!ssh2_auth_password($connection, $username, $password)) throw new Exception('Unable to connect.');
// Create our SFTP resource
if (!$sftp = ssh2_sftp($connection)) throw new Exception('Unable to create SFTP connection.');
$localDir = '/path/to/your/local/dir';
$remoteDir = '/path/to/your/remote/dir';
// download all the files
$files = scandir('ssh2.sftp://' . $sftp . $remoteDir);
if (!empty($files)) {
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
ssh2_scp_recv($connection, "$remoteDir/$file", "$localDir/$file");
}
}
}
?>
Это с сервера на компьютер, но вы можете изменить $ localDir
Других решений пока нет …