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部分常见问题总结
Mar 27 PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
php中的观察者模式
Mar 24 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
php的mssql数据库连接类实例
Nov 28 PHP
php表单敏感字符过滤类
Dec 08 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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
php empty函数判断mysql表单是否为空
2010/04/12 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python生成随机密码的方法
2017/06/16 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python实现猜单词游戏
2020/05/22 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
高中生学习的自我评价
2013/12/14 职场文书
关于保护环境的建议书
2014/05/13 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
机关作风建设整改方案
2014/10/27 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
五年级作文之劳动作文
2019/11/12 职场文书