微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将文件放在SFTP服务器上

如何解决将文件放在SFTP服务器上

| 我想在使用公共密钥(而非密码)进行身份验证后将文件放在STFP服务器上。 在命令行中手动SFTP可以工作。 首先,我不能使用PHPseclib。 \'allow_url_fopen \'= 1在我的PHP.ini中 stream_get_wrappers()给我:https,ftps,compress.zlib,compress.bzip2,PHP文件,glob,数据,http,ftp,phar,ssh2.shell,ssh2.exec,ssh2.tunnel,ssh2.scp,ssh2。 sftp,zip 一切正常(按顺序:ssh2_connect,ssh2_auth_pubkey_file,ssh2_sftp) 但是此代码不起作用:
$sftp = ssh2_sftp($connection);
$dest = \'test.txt\';
--> $sftpStream = fopen(\'ssh2.sftp://\'.$sftp.$dest,\'w\'); <---
PHP Warning:  fopen(ssh2.sftp://Resource id #32test.txt): Failed to open stream: 
任何想法 ? 谢谢 S.     

解决方法

        一个简单的错误:您忘记了
$resource
$dest
之间的
/
。因此,这将起作用:
$sftpStream = fopen(\'ssh2.sftp://\'.$sftp.\'/\'.$dest,\'w\');
..前提是您对文件系统的根拥有写访问权。除了在ssh连接上执行
cwd
之外,您可能还需要提供文件的完整路径。我还没有找到一种在连接后将文件放在\'default \'目录中的方法。     ,        phpseclib使用fsockopen,allow_url_fopen不会生效。 allow_url_fopen用于file()和file_get_contents()之类的东西-不适用于fsockopen()。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。