rtgx

FTP - kopírovanie súborov

Trieda na prenos zoznamu súborov cey FTP. Názvy súborov odovzdáme ako pole v premennej $filesList funkcie ftpCopy.

class ftpTransfer {

// Storage folders
var $fileCopyPathFrom = '../../../../files/user_upload/users/';
var $fileCopyPathTo = 'files/user_upload/users/';

// Settings FTP account
var $ftpEnable = true;
var $ftpHost = 'ftp.hostname.org';
var $ftpUser = 'www-data';
var $ftpPassword = '********';

// Log arrays
var $log;
var $errors;

// User name
var $username = 'default_user';

function ftpCopy( $filesList ) {

if( $filesList && count( $filesList ) > 0 ) {
// Copy using FTP
if( $this->ftpEnable ) {
// Set up basic connection
$connId = @ftp_connect( $this->ftpHost );
// Login with username and password
$loginResult = ftp_login( $connId, $this->ftpUser, $this->ftpPassword );
foreach( $filesList as $filename ) {
// Open some file for reading
$this->fileCopyPathTo = $this->fileCopyPathTo.$this->username;
$file = $this->fileCopyPathTo.'/'.$filename;
$fp = @fopen( $this->fileCopyPathFrom.$this->username.'/'.$filename, 'r' );
// Create the directory $dir
if( !@ftp_chdir( $connId, $this->fileCopyPathTo ) ) {
if( @ftp_mkdir( $connId, $this->fileCopyPathTo ) )
$this->log[] = 'Adresár '.$this->fileCopyPathTo.' bol vytvorený cez FTP.';
else
$this->errors[] = 'Adresár '.$this->fileCopyPathTo.' sa nepodarilo vytvoriť.';
}
else {
$this->log[] = 'Adresár '.$this->fileCopyPathTo.' existuje.';
}
// Try to upload $file
ftp_chdir( $connId, '/' );
if( @ftp_fput( $connId, $file, $fp, FTP_BINARY ) )
$this->log[] = 'Súbor '.$filename.' bol skopírovaný cez FTP.';
else
$this->errors[] = 'Nepodarilo sa skopírovať súbor '.$filename.' cez FTP (zdroj: '.$this->fileCopyPathFrom.$this->username.'/'.$filename.'; cieľ: '.$this->fileCopyPathTo.'/'.$filename.').';

fclose( $fp );
}
// Close the connection
ftp_close( $connId );
}
else {
foreach( $filesList as $filename ) {
if( !copy( $this->fileCopyPathFrom.$this->username.'/'.$filename, $this->fileCopyPathTo.$filename ) )
$this->errors[] = 'Nepodarilo sa skopírovať súbor '.$filename.' (zdroj: '.$this->fileCopyPathFrom.$this->username.'/'.$filename.'; cieľ: '.$this->fileCopyPathTo.$filename.').';
else
$this->log[] = 'Súbor '.$filename.' bol skopírovaný.';
}
}
}
else {
$this->log[] = 'Žiadne súbory na kopírovanie.';
}
}
}
 
Žiadne dokumenty ani odkazy k tejto stránke.