php实现sftp上传
测试通过
1.开启ssh2服务
在php/ext 里面找到php_ssh2.dll复制到系统的System32里(如果没有下载对应版本的pecl)
2.开启php.ini的extension=php_ssh2.dll
<?php
$strServer = "192.168.0.*";
$strServerPort = "22";
$strServerUsername = "root";
$strServerPassword = "111111";
define('REMOTE_DIR','/var/www/idc_home'); //要操作的远程根目录
$resConnection = ssh2_connect($strServer, $strServerPort);
if(ssh2_auth_password($resConnection, $strServerUsername, $strServerPassword))
{
//初始化SFTP子系统
//请求从一个已经连接子系统SFTP服务器SSH2安全性会更高。
$resSFTP = ssh2_sftp($resConnection);
}else{ echo "无法在服务器进行身份验证";}
$path = REMOTE_DIR;//远程路径
$date =date('Y-m-d_H.i.s');
$path .= '/'.$date;
$filename="myzipfile.zip"; //文件名
ssh2_sftp_mchkdir($resSFTP,$path);
$path.='/new'.$filename;
$sendbol = ssh2_scp_send($resConnection, $filename, $path, 0777); //上传文件
if($sendbol ){
ECHO '上传成功';
}
function ssh2_sftp_mchkdir($sftp,$path) //使用创建目录循环
{
ssh2_sftp_mkdir($sftp, $path);
}
?>