コードをコピー & & lt;? /*著者: Bowman (lyc) /*email: jar-c@163.com /* time : 2011-04-22 */ abstract class Lyc_Ftp_Abstract { protected $ftpobj=null protected $host= ''; 保護された $user='anonymous'; 保護された $pwd= ''; 保護された $timeout=90; 保護された関数 init(){ } /** * FTP 接続を確立します * */ 保護された関数 connect(){ $this->ftpobj=@ftp_connect($this->host,$this->port 、$ this> Timeout); – * * * ssl ftp 接続を確立します * */ 保護関数 connectSsl(){ $ftpobj=@ftp_ssl_connect($this->host,$this->port,$this->timeout); if(null==) $ftpobj ; */ 保護関数login(){ if(@ftp_login($this->ftpobj,$this->user,$this->pwd)){ ftp_pasv($this-> ftpobj,$ pasv); }else{ require_once 'Lyc/Ftp/Exception.class.php'; /** * ログイン認証FTPと設定モード * */ パブリック関数アップロード($remotefile,$localfile){ } / ** * ファイルをアップロードします * */ パブリック関数 download($localfile,$remotefile){ } /* * * ファイルをダウンロードします * */ パブリック関数 close(){ ?>
二、LycFtpFtp.class.php 实现类
代码如下 | 复制代码 | /* author:凹凸曼( lyc) /* メール: jar-c@163 .com /* time : 2011-04-22 /* */ require_once 'Lyc/Ftp/Abstract.class.php'; class Lyc_Ftp_Ftp extends Lyc_Ftp_Abstract{ public function __construct($host,$user,$pwd,$mode=FTP_BINARY,$port=21,$timeout=90,$pasv=TRUE){ $this->host= $ホスト; $this->user=$user; $this->pwd=$pwd; $this->mode=$mode; $this->port=$port; $this->timeout=$timeout; $this->pasv=$pasv; $this->init(); } 保護された関数 init(){ $this->connect(); $this->login(); } /** * ファイルをアップロードします * */ public function Upload($remotefile,$localfile){ $res=ftp_nb_put($this->ftpobj,$remotefile,$localfile,$this->mode ,ftp_size($this->ftpobj,$remotefile)); while($res==FTP_MOREDATA){ $res=ftp_nb_ continue($this->ftpobj); } if($res!=FTP_FINISHED){ 戻り値 FALSE; } TRUE を返します。 } /** * ファイルをダウンロードします * */ public function download($localfile,$remotefile){ ftp_set_option($this->ftpobj,FTP_AUTOSEEK,FALSE); $res=ftp_nb_get($this->ftpobj,$localfile,$remotefile,$this->mode,ftp_size($this->ftpobj,$localfile)); while($res==FTP_MOREDATA){ $res=ftp_nb_ continue($this->ftpobj); } if($res!=FTP_FINISHED){ FALSEを返す; } TRUE を返します。 } } ?>
|
三、LycException.class.php 异常基类
代码如下 | 复制代 | /* author:凹凸曼( lyc) /* email: jar-c@163.com /* time : 2011-04-22 /* */ class Lyc_Exception extends Exception{ ?&g t; | 4。 jar-c @163.com /* time : 2011-04-22 */ require_once 'Lyc/Exception.class.php'; class Lyc_Ftp_Exception extends Lyc_Exception{ } | ?>
| 5. テストエリア
コードは次のとおりです コードをコピー |
/** * ファイルをアップロードします * */ public function UploadTest(){ require_once 'Lyc/Ftp /Ftp.class.php '; | $ftp=new Lyc_Ftp_Ftp($ Host, $ ユーザー, $ pwd); $ res = $ ftp-& gt; f: wwwroottestarealyCtesttest.rar"); | IF (! $ res) Re "; } } public function doubledtest () { require_once 'lyc/ftp/ftp.class.php' $ host = 33.64 .41.135 '; '; $ pwd = "" "" ; $ res = $ ftp-& gt; ", "test.rar"); if (! $ Res ){ echo "ダウンロード失敗";
http://www.bkjia.com/PHPjc/444624.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/444624.html
技術記事
php では、ftp を直接操作して、ftp と同じファイルのアップロードおよびダウンロード機能を実現することもできます。以下に完全な例を紹介します。 1. LycFtp...
|
|