Как открыть путь ftps, используя fopen в php; Не получил идентификационную строку от

Я пытаюсь отправить строковые данные на удаленный путь FTP. Я делал это раньше в других настройках, но в этом случае сервер, похоже, не распознает строку идентификации. Вероятно, это просто небольшая синтаксическая ошибка в строке пути ftp, но я ее не вижу.

Я знаю, что достигаю удаленного сервера, потому что я могу проверить файл журнала и увидеть сообщение

Did not receive identification string from xxx.xxx.xxx.xxx

за каждую попытку, которую я делаю.

После некоторого зависания мой скрипт просто возвращает ошибку

Warning: fopen() failed to open stream.

Мой путь к файлу отформатирован следующим образом:

$ftp_path = "ftps://user:password@remoteaddress:12345/path/to/file/filename.txt";//port 12345 is deliberate because I use port forwarding on the server to reduce failed hack attempts

Часть сценария, которая имеет дело с соединением, выглядит следующим образом:

$ftp_path = "ftps://user:password@remoteaddress:12345/path/to/file/filename.txt";
// Allow/disallow overwriting of existing files on the remote FTP server
$stream_options = array('ftps' => array('overwrite' => false));
// Creates a stream context resource with the defined options
$stream_context = stream_context_create($stream_options);
// Opens the file for writing and truncates it to zero length
if ($fh = fopen($ftp_path, 'w', 0, $stream_context)){
// Writes contents to the file
if(fputs($fh, $content)){
echo "records pushed successfully.";
} else {
echo "The stream was opened, but the records failed to push.";
}
// Closes the file handle
fclose($fh);
} else {
die('Could not open remote ftp.');
}

0

Решение

Эта ошибка может указывать на то, что вы пытаетесь получить доступ к серверу SFTP / SSH через оболочку FTP. FTP / FTPS и SSH / SFTP не являются совместимыми протоколами, поэтому не путайте FTPS с SFTP.

1

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

Других решений пока нет …