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 cli 方式 在crotab中运行解决
Feb 08 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
php日历制作代码分享
Jan 20 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 PHP
php中fsockopen用法实例
Jan 05 PHP
cakephp打印sql语句的方法
Feb 13 PHP
PHP简单日历实现方法
Jul 20 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
php-app开发接口加密详解
Apr 18 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
Laravel 创建指定表 migrate的例子
Oct 09 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
php 破解防盗链图片函数
2008/12/09 PHP
PHP实现搜索相似图片
2015/09/22 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python中不同进制的语法及转换方法分析
2016/07/27 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
简单了解python调用其他脚本方法实例
2020/03/26 Python
python能自学吗
2020/06/18 Python
留学自荐信写作方法
2014/01/27 职场文书
就业协议书的作用
2014/04/11 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
质量承诺书格式范文
2015/04/28 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL