hguenot / yii2-gftp
Ftp 是 YII 2 框架的 FTP 扩展。
3.0.3
2021-09-13 20:29 UTC
Requires
- php: >=7.1
- yiisoft/yii2: *
README
GFtp
GFtp 是 YII 2 框架的 FTP 扩展。
它包含两个主要组件
\gftp\FtpComponent
: 一个用于管理 FTP 连接和导航的 Yii 组件(封装了 PHP ftp 方法)。\gftp\FtpWidget
: 一个可以用来显示 FTP 文件夹内容并允许浏览 FTP 服务器的小部件。
它支持 FTP 协议和 FTP over SSL 协议。SFTP 支持由 Yii2-gsftp 扩展提供。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist hguenot/yii2-gftp "*"
或
"hguenot/yii2-gftp": "*"
将以下内容添加到您的 composer.json
文件的 require 部分中。
使用方法
以下是对 GFtp 扩展的基本使用示例。
- 创建一个 FTP 应用程序组件(在您的 Web 配置文件中)
return [ // [...] 'components'=>[ // [...] 'ftp' => [ 'connectionString' => 'ftp://user:pass@host:21', 'driverOptions' => [ 'timeout' => 120, 'passive' => false ] ] ], // [...] ];
- 您可以使用包含协议(可以是 ftp 或 ftps)的连接字符串,或者直接设置
protocol
、user
、pass
、host
和port
属性
return [ // [...] 'components'=>[ // [...] 'ftp' => [ 'class' => '\gftp\FtpComponent', 'driverOptions' => [ 'class' => '\gftp\drivers\SftpProtocol', 'user' => 'me@somewhere.otrb', 'pass' => 'PassW0rd', 'host' => 'ftp.somewhere.otrb', 'port' => 2121, 'timeout' => 120, 'passive' => false ] ] ], // [...] ];
- 使用组件
$files = $gftp->ls(); $gftp->chdir('images');
更完整的示例
public function actionExample() { $remote_file = '/data/users.txt'; $local_file = '/tmp/users.load'; $mode = 'FTP_ASCII'; $asynchronous = false; $file = Yii::$app->ftp->get($remote_file, $local_file, $mode, $asynchronous); // [...] }
- 在 Widget 中显示 ftp 内容
use gftp\FtpWidget; echo FtpWidget::widget();
- 如果未向小部件传递 FTP(S) 连接,则需要一个名为
'ftp'
的应用程序组件。但您可以直接传递 FtpComponent
use \gftp\FtpWidget; echo FtpWidget::widget([ 'ftp' => \Yii::$app->get('otrb') ]);
或
use \gftp\FtpWidget; use \gftp\FtpComponent; echo FtpWidget::widget([ 'ftp' => new FtpComponent([ 'driverOptions' => [ 'class' => '\gftp\drivers\SftpProtocol', 'user' => 'me@somewhere.otrb', 'pass' => 'PassW0rd', 'host' => 'ftp.somewhere.otrb', 'port' => 2121, 'timeout' => 120, 'passive' => false ] ]); ]);