PHP SFTP简单上传下载实现

  • 黄楚恒
  • 2019-05-13 10:57:11
  • PHP
  • php
1 下载ssh2文件
下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
根据自己PHP的版本去下载,其中ts表示线程安全,nts表示不安全。
(可以使用phpinfo()查看需要哪一个,Thread Safety项是enabled表示线程安全)

2 安装ssh2
解压php_ssh2.zip

将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。
将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份
php.ini中加入 extension=php_ssh2.dllphp.ini中加入 extension=php_ssh2.dll

重启PHP


3 sftp的连接上传下载


<?php
$conf = [
 'host' => '',//访问ip
 'port' => '22',//端口号
 'user' => '',//用户名
 'password' => ''//密码
];
$conn = ssh2_connect($conf['host'], $conf['port']);
 
if (!ssh2_auth_password($conn, $conf['user'], $conf['password'])) {
 var_dump('ftps 连接失败');
}

$remotFile = 'test/test.txt';//下载文件目录和文件名
$localPath = 'test';//保存文件路径
 
// 创建文件夹
if (!is_dir($localPath)) {
 $dir = mkdir($localPath, 0777, true);
 if (!$dir) {
  return false;
 }
}

$localRealFile = $localPath . '/' . $localFile;//保存在本地的目录和文件名
 
// 如果文件存在则删除,当然这里也可以根据需求进行修改
if (is_file($localRealFile)) {
 unlink($localRealFile);
}
$sftp = ssh2_sftp($conn);
 
$resource = "ssh2.sftp://{$sftp}" . $remotFile;
 
//远程文件 拷贝到本地
copy($resource, $localRealFile);

?>


Copyright © 2016-2019 709173702@qq.com 版权所有  ICP证粤ICP备16117826号-1
联系邮箱:709173702@qq.com