GFtp is a FTP extension for YII 2 Framework.
It contains 2 main component :
\gftp\FtpComponent
: A Yii component used to manage FTP connection and navigation (encapsulates PHP ftp method).\gftp\FtpWidget
: A widget which can be used to display FTP folder content and allow FTP server browsing.It supports FTP protocol and FTP over SSL protocol. SFTP support is provider by Yii2-gsftp extension.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist hguenot/yii2-gftp "*"
or add
"hguenot/yii2-gftp": "*"
to the require section of your composer.json
file.
Here is a basic usage of GFtp extension.
return [
// [...]
'components'=>[
// [...]
'ftp' => [
'connectionString' => 'ftp://user:pass@host:21',
'driverOptions' => [
'timeout' => 120,
'passive' => false
]
]
],
// [...]
];
protocol
, user
,
pass
, host
and port
properties : 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');
More complete example :
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);
// [...]
}
use gftp\FtpWidget;
echo FtpWidget::widget();
'ftp'
. But you can pass an
FtpComponent directly : use \gftp\FtpWidget;
echo FtpWidget::widget([
'ftp' => \Yii::$app->get('otrb')
]);
or
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
]
]);
]);
Comments