当前位置:Gxlcms > PHP教程 > php实现ftp上传的类与调用示例

php实现ftp上传的类与调用示例

时间:2021-07-01 10:21:17 帮助过:5人阅读

仿照网上的例子写的一个ftp上传类,很简单,适合新手朋友参考。

1、文件上传类 ftp.class.php

ftpUrl=$ftpUrl;
 }
 if($ftpUser){
     $this->ftpUser=$ftpUser;
 }
 if($ftpPass){
     $this->ftpPass=$ftpPass;
 }
 if($ftpUrl){
     $this->ftpDir=$ftpDir;
 }
 if ($this->ftpR = ftp_connect($this->ftpUrl, 21)) {
     if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass)) {
  if (!empty($this->ftpDir)) {
      ftp_chdir($this->ftpR, $this->ftpDir);
  }
  ftp_pasv($this->ftpR, true);//R 启用被动模式;
  $status = 1;
     }
     else {
  $status = 3;
     }
 }
 else {
     $status = 2;
 }
    }
    //R 切换目录;
    function cd($dir) {
       return ftp_chdir($this->ftpR, $dir);
    }
    //R 返回当前路劲;
    function pwd() {
       return ftp_pwd($this->ftpR);
    }
    //R 创建目录
    function mkdir($directory) {
       return ftp_mkdir($this->ftpR,$directory);
    }
    //R 删除目录
    function rmdir($directory) {
       return ftp_rmdir($this->ftpR,$directory);
    }
    //R 上传文件;
    function put($localFile, $remoteFile = '') {
       if ($remoteFile == '') {
  $remoteFile = end(explode('/', $localFile));
       }
       $res = ftp_nb_put($this->ftpR, $remoteFile, $localFile, FTP_BINARY);
       while ($res == FTP_MOREDATA) {
  $res = ftp_nb_continue($this->ftpR);
       }
       if ($res == FTP_FINISHED) {
  return true;
       } elseif ($res == FTP_FAILED) {
  return false;
       }
    }
    //R 下载文件;
    function get($remoteFile, $localFile = '') {
       if ($localFile == '') {
  $localFile = end(explode('/', $remoteFile));
       }
       if (ftp_get($this->ftpR, $localFile, $remoteFile, FTP_BINARY)) {
  $flag = true;
       } else {
  $flag = false;
       }
       return $flag;
    }
    //R 文件大小;
    function size($file) {
       return ftp_size($this->ftpR, $file);
    }
    //R 文件是否存在;
    function isFile($file) {
       if ($this->size($file) >= 0) {
  return true;
       } else {
  return false;
       }
    }
    //R 文件时间
    function fileTime($file) {
       return ftp_mdtm($this->ftpR, $file);
    }
    //R 删除文件;
    function unlink($file) {
       return ftp_delete($this->ftpR, $file);
    }
    function nlist($dir = '/service/resource/') {
       return ftp_nlist($this->ftpR, $dir);
    }
    //R 关闭连接;
    function bye() {
       return ftp_close($this->ftpR);
    }
}
?>

2、调用示例 uplaod.php

put($localfile, $remotefile); //FTP上传原图到远程服务器
 $ftp->bye(); //关闭FTP连接
 unlink($workDir."/".$img_name) or die("Cannot delete uploaded file from working directory -- manual deletion recommended");
 if(!$ftpput){
     return false;  
 }
 else{
     return $img_path.'/'.$img_name;
 }
?>

人气教程排行