ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何从PHP上传SFTP文件

2019-05-27 02:16:08  阅读:348  来源: 互联网

标签:php sftp phpseclib


我在使用PHP来SFTP上传文件到远程服务器时遇到了麻烦.当我使用cURL时,我收到此处描述的错误:

SFTP from PHP – undefined constant CURLOPT_PROTOCOLS and CURLPROTO_SFTP?

我也按照以下建议尝试了phpseclib:

SFTP from within PHP

但是,当我尝试phpseclib时,我得到这些错误:

Warning: require_once(Math/BigInteger.php) [function.require-once]: failed to open stream: No such file or directory in /home/john/public_html/test/Net/SSH2.php on line 53

Fatal error: require_once() [function.require]: Failed opening required 'Math/BigInteger.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/john/public_html/test/Net/SSH2.php on line 53

然后我尝试在php中使用系统命令,但没有任何反应:

<?php
echo system('sftp user@ftp.domain.com');
echo system('password');
echo system('put file.csv');
?>

我也试过了

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

但是我的php服务器说没有定义ss2_connect.

我试图从终端做以下事情

scp file.csv user@ftp.remote.com
password

但是服务器不允许使用scp命令.我没有shell访问权限来创建ssh密钥.

我现在能做的就是从终端sftp并手动上传.但我真的想自动化这个,所以PHP网站可以做到这一切.

关于如何从PHP上传SFTP的教程并不多.是因为这是一件坏事吗?如果是这样,我该怎么办?我要上传的服务器只允许sftp连接.

解决方法:

http://phpseclib.sourceforge.net/documentation/intro.html#intro_usage_correct

因此,phpseclib的根目录需要在您的include_path中.从该页面:

<?php
  set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

  include('Net/SFTP.php');
?>

你应该真正熟悉这种包含技术 – 它是PEAR库和Zend库的标准.

标签:php,sftp,phpseclib
来源: https://codeday.me/bug/20190527/1159935.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有