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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
PHP下几种删除目录的方法总结
Aug 19 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
php的常量和变量实例详解
Jun 27 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
php实现微信企业付款到个人零钱功能
Oct 09 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 生成随机验证码图片代码
2010/02/08 PHP
解析PHP生成静态html文件的三种方法
2013/06/18 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
简单谈谈json跨域
2016/03/13 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
Python中逗号的三种作用实例分析
2015/06/08 Python
Python入门教程之运算符与控制流
2016/08/17 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python conda操作方法
2019/09/11 Python
Python tkinter和exe打包的方法
2020/02/05 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
CLR与IL分别是什么含义
2016/08/23 面试题
教师业务学习制度
2014/01/25 职场文书
公司年会主持词
2014/03/22 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
先进典型发言材料
2014/12/30 职场文书
图书借阅制度范本
2015/08/06 职场文书
热爱劳动主题班会
2015/08/14 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
Python图像处理之图像拼接
2021/04/28 Python