PHP连接sftp并下载文件的方法教程


Posted in PHP onAugust 26, 2018

前言

sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。

下面这篇文章主要介绍了关于PHP连接sftp并下载文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

方法如下:

首先我们要知道如何在命令行下连接,了解了之后就清楚大概的原理了

命令行连接的方式如下

sftp -P port user@host

如果端口号默认是22的话就不需要端口号的参数,如下

sftp user@host

连接进去之后sftp支持大多数的linux命令,如ls、cd等,但是注意并不是所有的命令都支持,毕竟这是个文件传输的功能,没有太多复杂的命令

上面了解之后我们看下PHP中如何链接

连接sftp

$conf = [
 'channelId' => '',
 'host' => '',
 'port' => '',
 'user' => '',
 'password' => ''
];
$conn = ssh2_connect($conf['host'], $conf['port']);

if (!ssh2_auth_password($conn, $conf['user'], $conf['password'])) {
 var_dump('ftps 连接失败');
}

获取远程文件

第一步没有问题,说明我们已经进去了sftp里面,然后就可以进行文件下载

设置要获取的远程文件

$remotFile = '/file/xxx/xxx/xxx.txt';

配置本地存储文件的路径

$localPath = '/storage/data';

// 创建文件夹
if (!is_dir($localPath)) {
 $dir = mkdir($localPath, 0777, true);
 if (!$dir) {
  return false;
 }
}

设置本地要存储的文件

// 如果文件已存在就覆盖
$localFile = 'xxxxx.txt';

$localRealFile = $localPath . '/' . $localFile;

// 如果文件存在则删除,当然这里也可以根据需求进行修改
if (is_file($localRealFile)) {
 unlink($localRealFile);
}

最后拉取文件并写到本地

$sftp = ssh2_sftp($conn);

$resource = "ssh2.sftp://{$sftp}" . $remotFile;

//远程文件 拷贝到本地
copy($resource, $localRealFile);

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP动态图像的创建
Oct 09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
PHP观察者模式原理与简单实现方法示例
Aug 25 PHP
PHP操作Redis数据库常用方法示例
Aug 25 #PHP
PHP实现基于3DES算法加密解密字符串示例
Aug 24 #PHP
PHP与以太坊交互详解
Aug 24 #PHP
php获取微信基础接口凭证Access_token
Aug 23 #PHP
php对微信支付回调处理的方法
Aug 23 #PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 #PHP
Yii2语言国际化自动配置详解
Aug 22 #PHP
You might like
关于文本留言本的分页代码
2006/10/09 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
Vuex简单入门
2017/04/19 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python实现把xml或xsl转换为html格式
2015/04/08 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
详解python eval函数的妙用
2017/11/16 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python实现一组典型数据格式转换
2018/12/15 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python conda操作方法
2019/09/11 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
python实现简单的五子棋游戏
2020/09/01 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
财务学生的职业生涯发展
2014/02/11 职场文书
《凡卡》教学反思
2014/04/09 职场文书
请假条格式范文
2014/04/10 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
餐馆开业致辞
2015/08/01 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书