hguenot/yii2-gftp

Ftp 是 YII 2 框架的 FTP 扩展。

安装量: 106,821

依赖: 8

建议者: 0

安全: 0

星标: 16

关注者: 4

分支: 13

开放问题: 3

类型:yii2-extension

3.0.3 2021-09-13 20:29 UTC

This package is auto-updated.

Last update: 2024-09-14 02:50:23 UTC


README

Latest Stable Version Total Downloads License

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)的连接字符串,或者直接设置 protocoluserpasshostport 属性
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
			]
	]);
]);