/** * Download test. * @return void */ public function testDownload() { $ftp = new Ftp(); // Opens an FTP connection to the specified host $ftp->connect('ftp.nettephp.com'); $ftp->pasv(TRUE); // Login with username and password $ftp->login('*****@*****.**', 'anonymous'); // Download file 'README' to local temporary file $temp = tmpfile(); $ftp->fget($temp, 'README', Ftp::ASCII); // echo file fseek($temp, 0); $this->assertEquals("Nette Framework rocks!", stream_get_contents($temp)); }
/** * Uploads a file or directory to an FTP connection. * * @param \Ftp $ftp An active FTP connection. * @param \SplFileInfo $file A local file to upload. */ protected function upload(\Ftp $ftp, \SplFileInfo $file) { // enter into passive mode $ftp->pasv(true); // move to the file's parent directory $ftp->chdir($this->targetDirectory . '/' . $file->getRelativePath()); // check if the file exists $fileExists = in_array($file->getBasename(), $ftp->nlist('.')); // check if the file is a directory if ($file->isDir()) { // create the directory if it does not exist if (!$fileExists) { $this->printTaskInfo('Creating directory: ' . $file->getRelativePathname()); // create directory $ftp->mkdir($file->getBasename()); } } else { // if the file already exists, check our skip options if ($fileExists) { // skip the file if the file sizes are equal if ($this->skipSizeEqual && $ftp->size($file->getBasename()) === $file->getSize()) { return; } // skip the file if modified time is same or newer than source if ($this->skipUnmodified && $ftp->mdtm($file->getBasename()) >= $file->getMTime()) { return; } } // try to upload the file $this->printTaskInfo('Uploading: ' . $file->getRelativePathname()); if (!$ftp->put($file->getBasename(), $file->getRealpath(), FTP_BINARY)) { // something went wrong return Result::error($this, 'Failed while uploading file ' . $file->getRelativePathname()); } } }
// www.xtac.net $container['template'] = function ($c) { $tpl = new \Template_(); $tpl->skin = 'bootstrap'; return $tpl; }; // logger $container['logger'] = function ($c) { $logger = new Kaiser\Manager\LogManager(__DIR__ . '/../logs'); return $logger; }; // session $container['session'] = function ($c) { $session = new Kaiser\Session\FileSession(__DIR__ . '/../tmp'); $session->start_session(); return $session; }; // ftp $container['ftp'] = function ($c) { $ftp = new \Ftp(); // Opens an FTP connection to the specified host $ftp->connect($c['config']->get('ftp.host')); if (!empty($c['config']->get('ftp.user')) && !empty($c['config']->get('ftp.pass'))) { // Login with username and password $ftp->login($c['config']->get('ftp.user'), $c['config']->get('ftp.pass')); } elseif (!empty($_SESSION['user']['username']) && !empty($_SESSION['user']['password'])) { $ftp->login($_SESSION['user']['username'], $_SESSION['user']['password']); } $ftp->pasv($c['config']->get('ftp.passive')); return $ftp; };