Мне нужно осуществить загрузку файлов с сервера sftp с помощью PHP7.Я вижу, у меня есть http://php.net/manual/ru/function.ssh2-sftp.php функции.Среди них у меня есть ssh2_scp_recv
и ssh2_scp_send
.
. Я вижу, что эти функции принимают полный удаленный путь, как это делает scp.Я вижу, что могу использовать следующий код:
$format = "ssh2.sftp://%d%s";
$remotePath = "/csv/$fileName";
$link = sprintf($format, intval($sftp), $remotePath);
$read = 0;
$filesize = filesize($link);
while (
($read < $filesize) &&
($buffer = fread($remote, $filesize - $read))
) {
$read += strlen($buffer);
if (fwrite($local, $buffer) === FALSE)
{
die("Failed to write to local file: $file\n");
}
}
Но я получаю сообщение об ошибке:
PHP Warning: filesize(): stat failed for ssh2.sftp://36/csv/20180521_export_fraud_weborama_weborama_ru.ok
Я думаю, что это связано со следующей вещью.Это не размер:
print_r(ssh2_sftp_stat(ssh2_sftp($connection), $remotePath))
Array
(
[7] => 0
[size] => 0
[4] => 0
[uid] => 0
[5] => 0
[gid] => 0
[2] => 33188
[mode] => 33188
[8] => 1526868072
[atime] => 1526868072
[9] => 1526921030
[mtime] => 1526921030
)
Я просто не могу поверить, что не существует нормальной реализации sftp для PHP.
В то же время мне удается получить файлы с оболочкой sftpклиент.
ОБНОВЛЕНИЕ
$sftp = ssh2_sftp($connection)