如何用PHP在sftp-server上编写文件?

时间:2010-06-18 08:59:08

标签: php upload ftps

我希望有人可以帮助我,因为我找不到谷歌的任何解决方案。我要做的是生成一个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);

3 个答案:

答案 0 :(得分:1)

您需要编译一个支持OpenSSL的PHP​​。然后,使用ftps://而不是ftp://。 More info on FTPS

答案 1 :(得分:1)

使用ssh2.sftp://代替ftp://。请参阅ssh2_sftp

答案 2 :(得分:0)

更简单的解决方案是将文件保存在临时目录中,然后执行shell命令以实际发送文件。