Yii 1.1: ftp

OOP FTP library
12 followers

Simple OOP FTP library

这个扩展是对常用ftp函数的面向对象封装。

Resources

Documentation

Requirements

  • Yii 1.0 or above

Installation

  • Extract ftp folder under protected/extensions

Usage

The following code is the component registration in the config file:

'components'=>array(
'ftp'=>array(
          'class'=>'application.extensions.ftp.EFtpComponent',
          'host'=>'127.0.0.1',
          'port'=>21,
          'username'=>'yourusername',
          'password'=>'yourpassword',
          'ssl'=>false,
          'timeout'=>90,
          'autoConnect'=>true,
    ),...
)

See the following code example:

$ftp = Yii::app()->ftp;
$ftp->put('remote.txt', 'D:\local.txt');
$ftp->rmdir('exampledir');
$ftp->chdir('aaa');
$ftp->currentDir();
$ftp->delete('remote.txt');

Change Log

February 25, 2009

  • Rename CFtpComponent to EFtpComponent

February 25, 2009

  • Initial release.

Total 8 comments

#19894 report it
Nabi at 2016/06/27 12:29am
some bug

I thinks this line:
if ((empty($this->username) AND empty($this->password)) AND !$login_result)
must be change to this:
if ((!empty($this->username) AND !empty($this->password)) AND !$login_result)

And so about "close()" function:
Don't need "throw new CDbException" beacuse when destroy function and auto call this function, appear throw error message for always.

And so this line must be before of return true:
$this->_active = false;
$this->_connection = null;
$this->_errors = null;

#19893 report it
Nabi at 2016/06/26 04:45pm
Set properties of components in the code when initializes component

I know for working it, must put config in main/config.php file and set parameters. and so we can use and access it with Yii::app()->ftp.

Now after created, in the action, how can change property of this components to have new instance of it? Or in other words how can set properties of components in the code when initializes component?

#19885 report it
Nabi at 2016/06/20 08:51pm
@miles
  1. Please put @ before all ftp_* functions.
  2. Publish code on github.
  3. Thanks
#19407 report it
Pierre84 at 2015/06/22 04:34am
Passive mode ?

Useful and easy to use but your forget the param for passive mode

It seems to be useful to add it in the constructor

ftp_pasv($this->_connection, $this->pasv);

#10831 report it
pmaselkowski at 2012/11/26 02:07pm
Error handling

It's because the way Yii handles warnings. These warnings are generated by php ftp functions, not EFtpComponent. To avoid it either disable warnings in php error handler:

error_reporting(E_ERROR)

or edit EFtpComponent and put @ before all ftp_* function calls.

#4103 report it
Dzsonny at 2011/06/06 02:43am
Error handling2

The problem, that the program dies at the ftp_mkdir line. I get the php error:

ftp_mkdir() [<a href='function.ftp-mkdir'>function.ftp-mkdir</a>]: Directory already exists

I cant error handle, becouse the program execution stops!

#4102 report it
gawronzo at 2011/06/06 02:27am
solution1

Enclode code in try catch block and check what value returns ftp_mkdir command - if it is zero throw exception.

if ( ! ftp_mkdir(...) )
                        throw new CException('Error info ...', 404);
#4100 report it
Dzsonny at 2011/06/06 02:15am
Error handling

Hi!

The extension is very straightforward, and easy to use. I am having trouble with errorhandling though. If i perform an illegal command. (for example mkdir directory already exists) the program dies with a php error. If i put the command in a try catch structure i get the same result.

As far as i now, the ftp_mkdir command is not soppoused to couse php error, but return a 0 if the transaction wasnt succesfull.

What am i doing wrong? Has somebody got a solution?

Thanks!

Leave a comment

Please to leave your comment.

Create extension
Downloads
  • Yii Version: 1.1
  • License: New BSD License
  • Developed by: miles
  • Category: Networking
  • Votes: +10
  • Downloaded: 2,308 times
  • Created on: Feb 25, 2009
  • Last updated: Oct 18, 2010
  • Tags: ftp