никак не получается загрузить файл на удаленную машину с использованием библиотеки phpseclib
вот код который я использую:
<?php
require_once '../vendor/autoload.php'; // Путь к autoloader'у библиотеки phpseclib
use phpseclib\Net\SFTP; // Используем класс SFTP
$remoteHost = '192.168.146.129';
$remoteUsername = 'PC';
$remotePassword = 'root';
$remoteUploadDirectory = 'C:\\Users\\PC\\Desktop\\'; // Путь к директории на удаленном сервере, куда будем загружать файл
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['uploadedFile'])) {
$uploadedFile = $_FILES['uploadedFile'];
if ($uploadedFile['error'] === UPLOAD_ERR_OK) {
$remoteUploadPath = $remoteUploadDirectory . basename($uploadedFile['name']);
$sftp = new SFTP($remoteHost);
if (!$sftp->login($remoteUsername, $remotePassword)) {
die('SFTP Login Failed');
}
if (!$sftp->is_dir($remoteUploadDirectory)) {
if (!$sftp->mkdir($remoteUploadDirectory, -1, true)) {
die('Failed to create remote directory: ' . $sftp->getLastSFTPError());
}
}
if ($sftp->put($remoteUploadPath, $uploadedFile['tmp_name'], SFTP::SOURCE_LOCAL_FILE)) {
echo "Файл успешно загружен на удаленный сервер.";
} else {
echo "Ошибка при загрузке файла на удаленный сервер.";
}
} else {
echo "Ошибка: " . $uploadedFile['error'];
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Загрузка файла на удаленный сервер</title>
</head>
<body>
<h2>Загрузите файл на удаленный сервер:</h2>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="uploadedFile">
<button type="submit">Загрузить</button>
</form>
</body>
</html>
с загрузкой файлов на kali linux не было никаких проблем, а тут скрипт просто не может найти директорию
проверял через командную строку, все работает, написал скрипт на питоне, тоже все хорошо, а с php проблемы какие-то
вот код на питоне:
import paramiko
def create_sftp_client(host, port, username, password):
transport = paramiko.Transport((host, port))
transport.connect(username=username, password=password)
sftp_client = paramiko.SFTPClient.from_transport(transport)
return sftp_client
def upload_file_to_server(sftp_client, local_file, remote_file):
sftp_client.put(local_file, remote_file)
def main():
sftp_client = create_sftp_client("192.168.146.129", 22, "PC", "root")
upload_file_to_server(sftp_client, "C:\\Users\\PC\\Desktop\\test.txt", "C:\\Users\\PC\\Desktop\\test.txt")
if __name__ == "__main__":
main()
подскажите пожалуйста что я не так делаю