FTP — я создаю страницу PHP, в которой я загружаю файл .CSV с сервера SFTP

Я хочу скачать файл с SFTP, поэтому я создал страницу, которая выглядит так.

 <?php
$username = "XYZ";
$password = "ABC";
$url ='FTP.abc.COM';
// 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");
}
}
}
?>

Когда я позвоню на эту страницу из браузера. Это покажет ошибку, похожую на это.

Fatal error: Call to undefined function ssh2_connect() in page.php on line 6

если этот метод правильный, что я должен редактировать на этой странице?
и если есть другой метод, предложите мне этот метод. Заранее спасибо.

-2

Решение

Вы, вероятно, будете иметь больший успех с phpseclib, чистая реализация PHP SFTP. например.

<?php
include('Net/SFTP.php');

$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}

// outputs the contents of filename.remote to the screen
echo $sftp->get('filename.remote');
// copies filename.remote to filename.local from the SFTP server
$sftp->get('filename.remote', 'filename.local');
?>

Он имеет ряд преимуществ перед libssh2:

http://phpseclib.sourceforge.net/ssh/compare.html

1

Другие решения

Функции SSH2 не являются стандартными функциями в PHP. Вы должны установить их в первую очередь. Увидеть http://php.net/manual/en/ref.ssh2.php Больше подробностей.

0

По вопросам рекламы [email protected]