配色: 字号:
PHP中FTP上传文件和下载文件实例代码
2016-08-22 | 阅:  转:  |  分享 
  
PHP中FTP上传文件和下载文件实例代码

在php中我们也有可以直接来操作ftp,然后利用php实现与ftp一样的文件上传与下载文件的功能哦,下面我来介绍一个完整的实例。

一、LycFtpAbstract.class.php??FTP基类

?代码如下 复制代码 ftpobj=@ftp_connect($this->host,$this->port,$this->timeout);???????if(null==$this->ftpobj){????????require_once''Lyc/Ftp/Exception.class.php'';???????thrownewLyc_Ftp_Exception("FTPERROR:Couldn''tconnectto$this->host");???????}????}????/????建立sslftp连接????????/???protectedfunctionconnectSsl(){???????$ftpobj=@ftp_ssl_connect($this->host,$this->port,$this->timeout);???????if(null==$ftpobj){????????require_once''Lyc/Ftp/Exception.class.php'';???????thrownewLyc_Ftp_Exception("FTPERROR:Couldn''tconnectto$this->host");???????}????}????/????登录验证ftp及设置模式????????/???protectedfunctionlogin(){??????????if(@ftp_login($this->ftpobj,$this->user,$this->pwd)){????????????ftp_pasv($this->ftpobj,$pasv);??????????}else{????????????require_once''Lyc/Ftp/Exception.class.php'';????????????thrownewLyc_Ftp_Exception("FTPERROR:Couldn''tloginto$this->host");????????}????}????/????上传文件????????/???publicfunctionupload($remotefile,$localfile){??????}????/????下载文件????????/???publicfunctiondownload($localfile,$remotefile){??????}????/????关闭连接????????/???publicfunctionclose(){????????if(is_string($this->ftpobj)){????????????ftp_close($this->ftpobj);????????}????}???}??> ??二、LycFtpFtp.class.php??实现类

?代码如下 复制代码 ?host=$host;????????$this->user=$user;????????$this->pwd=$pwd;????????$this->mode=$mode;????????$this->port=$port;????????$this->timeout=$timeout;????????$this->pasv=$pasv;????????$this->init();??????}????protectedfunctioninit(){??????????????$this->connect();????????????$this->login();??????}????/????上传文件????????/???publicfunctionupload($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){???????????returnFALSE;???????}???????returnTRUE;????}????/????下载文件????????/???publicfunctiondownload($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){????????????returnFALSE;????????}????????returnTRUE;????}?}??> ?三、LycException.class.php?异常基类

?代码如下 复制代码 ?? 四、LycFtpException.class.php?FTP异常类

?

?代码如下 复制代码 ?? 五、测试区

?代码如下 复制代码 ?upload(''test.rar'',"F:wwwroottestareaLycTesttest.rar");????????if(!$res){????????????echo"uploadfailure";????????}??????}??????publicfunctiondownloadTest(){????????require_once''Lyc/Ftp/Ftp.class.php'';????????$host=33.64.41.135'';????????$user=''tguser'';????????$pwd="";????????$ftp=newLyc_Ftp_Ftp($host,$user,$pwd);????????$res=$ftp->download("c:test.rar","test.rar");????????if(!$res){????????????echo"downloadfailure";????????}??????}

献花(0)
+1
(本文系网络学习天...首藏)