Как я могу записать файл на sftp-сервер с PHP? - PullRequest
4 голосов
/ 18 июня 2010

Я надеюсь, что кто-то здесь мог бы помочь мне, потому что я не мог найти никакого решения с Google. Что мне нужно сделать, так это сгенерировать XML-строку (которая работает) и сохранить ее непосредственно в файл на sftp-сервере.

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

Вот мой текущий код:

$host = 'ftp.example.com';

$port = 22;

$user = 'xxxxxx';

$pass = 'xxxxxx';

$file    = 'test_' . time() . '.txt';

$ftpPath = sprintf('ftp://%s:%s@%s:%d/%s', $user, $pass, $host, $port, $file);

$context = stream_context_create(array('ftp' => array('overwrite' => true)));

file_put_contents($ftpPath, 'test', 0, $context);

Ответы [ 3 ]

1 голос
/ 18 июня 2010

Используйте ssh2.sftp:// вместо ftp://.См. ssh2_sftp .

1 голос
/ 18 июня 2010

Вам нужен скомпилированный PHP с поддержкой OpenSSL. Затем используйте ftps: // вместо ftp: //. Подробнее о FTPS .

0 голосов
/ 18 июня 2010

Более простым решением было бы сохранить файл во временном каталоге, а затем выполнить команду оболочки для фактической отправки файла.

...