PHP中FTP上傳檔案和下載檔案執行個體代碼_PHP教程

來源:互聯網
上載者:User
在php中我們也有可以直接來操作ftp,然後利用php實現與ftp一樣的檔案上傳與下載檔案的功能哦,下面我來介紹一個完整的執行個體。

一、LycFtpAbstract.class.php FTP基類

代碼如下 複製代碼
/* author:凹凸曼(lyc)
/* email: jar-c@163.com
/* time : 2011-04-22
*/

abstract class Lyc_Ftp_Abstract {

protected $ftpobj=null;
protected $host='';
protected $user='anonymous';
protected $pwd='';
protected $mode=FTP_BINARY;
protected $port=21;
protected $timeout=90;

protected $pasv=TRUE;

protected function init(){

}
/**
* 建立ftp串連
*
*/
protected function connect(){
$this->ftpobj=@ftp_connect($this->host,$this->port,$this->timeout);
if(null==$this->ftpobj){
require_once 'Lyc/Ftp/Exception.class.php';
throw new Lyc_Ftp_Exception("FTP ERROR : Couldn't connect to $this->host");
}
}
/**
* 建立ssl ftp串連
*
*/
protected function connectSsl(){
$ftpobj=@ftp_ssl_connect($this->host,$this->port,$this->timeout);
if(null==$ftpobj){
require_once 'Lyc/Ftp/Exception.class.php';
throw new Lyc_Ftp_Exception("FTP ERROR : Couldn't connect to $this->host");
}
}
/**
* 登入驗證ftp 及設定模式
*
*/
protected function login(){

if(@ftp_login($this->ftpobj,$this->user,$this->pwd)){
ftp_pasv($this->ftpobj,$pasv);

}else{
require_once 'Lyc/Ftp/Exception.class.php';
throw new Lyc_Ftp_Exception("FTP ERROR : Couldn't login to $this->host");
}
}
/**
* 上傳檔案
*
*/
public function upload($remotefile,$localfile){

}
/**
* 下載檔案
*
*/
public function download($localfile,$remotefile){

}
/**
* 關閉串連
*
*/
public function close(){
if(is_string($this->ftpobj)){
ftp_close($this->ftpobj);
}
}

}
?>



二、LycFtpFtp.class.php 實作類別

代碼如下 複製代碼
/* author:凹凸曼(lyc)
/* email: 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=$host;
$this->user=$user;
$this->pwd=$pwd;
$this->mode=$mode;
$this->port=$port;
$this->timeout=$timeout;
$this->pasv=$pasv;
$this->init();

}
protected function 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){
return FALSE;
}
return 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){
return FALSE;
}
return TRUE;
}
}
?>


三、LycException.class.php 異常基類

代碼如下 複製代碼
/* author:凹凸曼(lyc)
/* email: jar-c@163.com
/* time : 2011-04-22
/*

*/
class Lyc_Exception extends Exception{

}
?>


四、LycFtpException.class.php FTP異常類

代碼如下 複製代碼
/* author:凹凸曼(lyc)
/* email: jar-c@163.com
/* time : 2011-04-22
*/
require_once 'Lyc/Exception.class.php';
class Lyc_Ftp_Exception extends Lyc_Exception{

}
?>


五、測試區

代碼如下 複製代碼


/**
* 上傳檔案
*
*/
public function uploadTest(){
require_once 'Lyc/Ftp/Ftp.class.php';
$host=23.64.41.13'; //主機
$user='tguser'; //使用者名稱
$pwd=""; //密碼 連接埠預設21 也可改
$ftp=new Lyc_Ftp_Ftp($host,$user,$pwd);
$res=$ftp->upload('test.rar',"F:wwwroottestareaLycTesttest.rar");
if(!$res){
echo " upload failure";
}

}

public function downloadTest(){
require_once 'Lyc/Ftp/Ftp.class.php';
$host=33.64.41.135';
$user='tguser';
$pwd="";
$ftp=new Lyc_Ftp_Ftp($host,$user,$pwd);
$res=$ftp->download("c:test.rar","test.rar");
if(!$res){
echo "download failure";
}

}


http://www.bkjia.com/PHPjc/444624.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444624.htmlTechArticle在php中我們也有可以直接來操作ftp,然後利用php實現與ftp一樣的檔案上傳與下載檔案的功能哦,下面我來介紹一個完整的執行個體。 一、LycFtp...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.