我希望有人可以帮助我,因为我找不到谷歌的任何解决方案。我要做的是生成一个XML字符串(可以正常工作)直接存储到sftp服务器上的文件中。
到目前为止,非常好......我在ftp中使用了以下代码,但它适用于ftps,但不适用于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);
答案 0 :(得分:1)
您需要编译一个支持OpenSSL的PHP。然后,使用ftps://而不是ftp://。 More info on FTPS
答案 1 :(得分:1)
使用ssh2.sftp://
代替ftp://
。请参阅ssh2_sftp。
答案 2 :(得分:0)
更简单的解决方案是将文件保存在临时目录中,然后执行shell命令以实际发送文件。