Php sftp

1下载ssh2文件

下载地址http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

根据自己PHP的版本去下载,其中ts表示线程安全,nts表示不安全。

(可以使用phpinfo()查看需要哪一个,Thread Safety项是enabled表示线程安全)

2安装ssh2

解压php_ssh2.zip

1.将php_ssh.dll、php_ssh2.pdb放到你的php扩展目录下php/ext/下。

2.将libssh2.dll复制到c:/windows/system32和c:/windows/syswow64各一份

3.php.ini中加入extension=php_ssh2.dllphp.ini中加入extension=php_ssh2.dll

4.重启PHP

3 sftp的连接上传下载

```

/**

*Sftp上传下载文件

*

*/

namespace Common\ORG\Util;

class Sftp

{

//初始配置为NULL

private $config = NULL;

//连接为NULL

private $conn = NULL;

//初始化

public function __construct($config)

{

$this->config = $config;

$this->connect();

}

public function connect()

{

$this->conn = ssh2_connect($this->config['host'],$this-

>config['port']); //资源

if( ssh2_auth_password($this->conn, $this-

>config['username'],$this->config['password']))

{

}else{

echo "无法在服务器进行身份验证";

}

}

//传输数据传输层协议,获得数据

public function downftp($remote, $local)

{

$ressftp = ssh2_sftp($this->conn);

return copy("ssh2.sftp://{$ressftp}".$remote, $local);

}

//传输数据传输层协议,写入ftp服务器数据

public function upftp( $local,$remote, $file_mode = 0777)

{

$ressftp = ssh2_sftp($this->conn);

return copy($local,"ssh2.sftp://{$ressftp}".$remote);

}

}

```

4实例

```

$config = array(

'host' =>'', //服务器

'port' => '22', //端口

'username' =>'', //用户名

'password' =>'', //密码

);

$ftp = new Sftp($config);

$localpath="D:/234.txt"; //源文件地址

$serverpath='/234.txt'; //上传sftp地址

$st =$ftp->upftp($localpath,$serverpath); //上传指定文件

if($st == true){

echo "success";

}else{

echo "fail";

}

```

地址路径区分大小写,sftp地址要写完整!!!!!!

谢谢观看~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181214G0YNMD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券