PHP SFTP实现上传下载功能


Posted in PHP onJuly 26, 2017

 一、SFTP介绍:

使用SSH协议进行FTP传输的协议叫SFTP(安全文件传输)Sftp和Ftp都是文件传输协议。区别:sftp是ssh内含的协议(ssh是加密的telnet协议), 只要sshd服务器启动了,它就可用,而且sftp安全性较高,它本身不需要ftp服务器启动。 sftp = ssh + ftp(安全文件传输协议)。由于ftp是明文传输的, 没有安全性,而sftp基于ssh,传输内容是加密过的,较为安全。目前网络不太安全,以前用telnet的都改用ssh2(SSH1已被破解)。

sftp这个工具和ftp用法一样。但是它的传输文件是通过ssl加密了的,即使被截获了也无法破解。而且sftp相比ftp功能要多一些,多了一些文件属性的设置。 

二、SSH2扩展配置

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

根据自己的php版本选择 扩展包,这里我使用的是php5.3,所以我下载的是 php_ssh2-0.12-5.3-ts-vc9-x86.zip(下载链接)

PHP SFTP实现上传下载功能

2. 解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。 

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

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

5.在 php.ini中加入 extension=php_ssh2.dll

6.重启Apache, 打印phpinfo(); 会出现 SSH2 扩展,表示安装成功

PHP SFTP实现上传下载功能

三、SFTP 代码DEMO

调用代码

$config = array(
  'host' =>'211.*.*.*', //服务器
  'port' => '23', //端口
  'username' =>'test', //用户名
  'password' =>'*****', //密码
 );
 $ftp = new Sftp($config);
 $localpath="E:/www/new_20170724.csv";
 $serverpath='/new_20170724.csv';
 $st = $ftp->upftp($localpath,$serverpath); //上传指定文件
 if($st == true){
  echo "success";
  
 }else{
  echo "fail";
 }

SFTP 封装类

<?php
/**
 * 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); 
 
 }
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 防恶意刷新实现代码
May 16 PHP
网站用php实现paypal整合方法
Nov 28 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
php实现获取文章内容第一张图片的方法
Nov 04 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 #PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 #PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 #PHP
php实现微信企业号支付个人的方法详解
Jul 26 #PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 #PHP
浅谈Yii乐观锁的使用及原理
Jul 25 #PHP
PHP异常处理定义与使用方法分析
Jul 25 #PHP
You might like
用缓存实现静态页面的测试
2006/12/06 PHP
实用函数10
2007/11/08 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
python实现rsa加密实例详解
2017/07/19 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
教师找工作推荐信
2013/11/23 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
慰问信范文
2015/02/14 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电