Предупреждение ftp_put() data_accept: не удалось получить существующий сеанс SSLPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Предупреждение ftp_put() data_accept: не удалось получить существующий сеанс SSL

Сообщение Anonymous »

Я пытаюсь загрузить файл по FTPS на сервер следующим образом:

Код: Выделить всё

$connectionId = ftp_ssl_connect($server, 21, 15);
if ($connectionId === false) {
throw new Exception("Could not connect to server via FTPs.");
}
echo "Connected".PHP_EOL;
if (!ftp_login($connectionId, $username, $password)) {
throw new Exception("Unable to authenticate with server.");
}
echo "Login".PHP_EOL;

if (!ftp_pasv($connectionId, true)) {
throw new Exception("Could not turn on passive mode.");
}
echo "Passive".PHP_EOL;

$path = '.';
if (!ftp_chdir($connectionId, $path)) {
throw new Exception("Could not change to directory ".$path.". Current directory :".ftp_pwd($connectionId));
}
echo "Chdir".PHP_EOL;

$filename = './test.txt';
if (!ftp_put($connectionId, basename($filename), $filename)) {
throw new Exception("Could not upload file to server.");
}
Что происходит, все работает нормально до вызова ftp_put(), где я получаю:

Предупреждение PHP: ftp_put (): data_accept: не удалось получить существующий
сеанс SSL в ...
Предупреждение PHP: ftp_put(): принято соединение для передачи данных в...Неустранимая ошибка PHP: неперехваченное исключение: не удалось загрузить файл на
сервер.

Когда я делаю то же самое через PHP вызовы Curl или даже с обёрткой потока (fwrite) всё работает нормально.
С сертификатом всё в порядке, сервер использует TLS1.3, пробовал разные контексты, но ничего не работает. В исходном коде php я вижу, что сообщение об ошибке появляется, когда PHP пытается использовать последний сеанс, который имеет значение NULL.
Может ли кто-нибудь мне помочь? Это базовая вещь, которая не работает с ftp_put, может быть из-за неявного FTP через TLS?
Обновить
Я обнаружил, что файл создается на сервере, но имеет 0 байт.

Подробнее здесь: https://stackoverflow.com/questions/790 ... sl-session
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»