Загрузка файла по SFTP (Secure File Transfer Protocol) в PHP может быть реализована с использованием расширения SSH2 для PHP. Ниже приведен подробный пример кода, который показывает, как загрузить файл по SFTP в PHP:
<?php // Установка параметров подключения к SFTP-серверу $server = 'your_sftp_server.com'; $port = 22; $username = 'your_username'; $password = 'your_password'; // Путь к локальному файлу, который нужно загрузить $localPath = '/path/to/local/file.txt'; // Путь к удаленной папке, куда нужно загрузить файл $remotePath = '/path/to/remote/directory/'; // Создание SFTP-соединения $connection = ssh2_connect($server, $port); // Аутентификация на SFTP-сервере if (ssh2_auth_password($connection, $username, $password)) { // Открытие SFTP-сессии $sftp = ssh2_sftp($connection); // Открытие локального файла для чтения $localFile = fopen($localPath, 'r'); // Создание удаленного файла на SFTP-сервере $remoteFile = fopen("ssh2.sftp://{$sftp}{$remotePath}" . basename($localPath), 'w'); // Передача данных из локального файла в удаленный файл while ($data = fread($localFile, 1024)) { fwrite($remoteFile, $data); } // Закрытие файлов fclose($localFile); fclose($remoteFile); echo 'Файл успешно загружен по SFTP.'; } else { echo 'Не удалось аутентифицироваться на SFTP-сервере.'; } // Закрытие SFTP-соединения ssh2_disconnect($connection); ?>
В данном примере:
- Замените 'your_sftp_server.com'
, 'your_username'
и 'your_password'
на актуальные данные для вашего SFTP-сервера.
- Замените '/path/to/local/file.txt'
на путь к локальному файлу, который вы хотите загрузить.
- Замените '/path/to/remote/directory/'
на путь к удаленной папке, куда вы хотите загрузить файл.
Приведенный код открывает SSH-соединение с указанным SFTP-сервером, аутентифицируется с использованием заданных учетных данных, создает SFTP-сессию, открывает локальный файл для чтения и удаленный файл для записи, и передает данные из локального файла в удаленный файл. Затем он закрывает файлы и SFTP-соединение, и выводит сообщение об успешной загрузке файла, или сообщение об ошибке при аутентификации.
Обратите внимание, что для работы этого примера требуется установленное и включенное расширение SSH2 для PHP. Если у вас его нет, вам может потребоваться установить или включить его перед использованием этого кода.