中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在php中利用ftp遠程上傳文件

發布時間:2020-12-14 15:42:46 來源:億速云 閱讀:154 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關如何在php中利用ftp遠程上傳文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

php使用ftp實現文件上傳代碼片段:

<?php 
  /**
   * ftp上傳文件類
   */ 
  class Ftp { 

    /**
     * 測試服務器
     * 
     * @var array
     */ 
    private $testServer = array( 
      'host' => 'ip', 
      'port' => 21, 
      'user' => 'userName', 
      'pwd' => 'password' 
    ); 

    /**
     * 打開并登錄服務器
     * 
     * @param string $flag 服務器標識test
     * @return mixed 
     *       0:服務器連接失敗
     *       1:服務器登錄失敗
     *       resource 連接標識
     */ 
    public function openServer($flag = 'test'){ 
      //選擇服務器 
      $config = $this->getServerConfig($flag); 

      //連接服務器 
      $connect = ftp_connect($config['host'], $config['port']); 
      if($connect == false) return 0; 

      //登錄服務器 
      if(!ftp_login($connect, $config['user'], $config['pwd'])) return 1; 

      //打開被動模式,數據的傳送由客戶機啟動,而不是由服務器開始 
      ftp_pasv($connect, true); 

      //返回連接標識 
      return $connect; 
    } 

    /**
     * 創建目錄并將目錄定位到當請目錄
     * 
     * @param resource $connect 連接標識
     * @param string $dirPath 目錄路徑
     * @return mixed 
     *       2:創建目錄失敗
     *       true:創建目錄成功
     */ 
    public function makeDir($connect, $dirPath){ 
      //處理目錄 
      $dirPath = '/' . trim($dirPath, '/'); 
      $dirPath = explode('/', $dirPath); 
      foreach ($dirPath as $dir){ 
        if($dir == '') $dir = '/'; 
        //判斷目錄是否存在 
        if(@ftp_chdir($connect, $dir) == false){ 
          //判斷目錄是否創建成功 
          if(@ftp_mkDir($connect, $dir) == false){ 
            return 2; 
          } 
          @ftp_chdir($connect, $dir); 
        } 
      } 
      return true; 
    } 

    /**
     * 關閉服務器
     * 
     * @param resource $connect 連接標識
     */ 
    public function closeServer($connect){ 
      if(!empty($connect)) ftp_close($connect); 
    } 

    /**
     * 上傳文件
     * 
     * @param string $flag 服務器標識
     * @param string $local 上傳文件的本地路徑
     * @param string $remote 上傳文件的遠程路徑
     * @return int 
     *       0:服務器連接失敗 
     *       1:服務器登錄失敗
     *       2:創建目錄失敗
     *       3:上傳文件失敗
     *       4:上傳成功
     */ 
    public function upload($flag = 'test', $local, $remote){ 
      //連接并登錄服務器 
      $connect = $this->openServer($flag); 
      if(($connect === 0) || ($connect === 1)) return $connect; 

      //上傳文件目錄處理 
      $mdr = $this->makeDir($connect, dirname($remote)); 
      if($mdr === 2) return 2; 

      //上傳文件 
      $result = ftp_put($connect, basename($remote), $local, FTP_BINARY); 

      //關閉服務器 
      $this->closeServer($connect); 

      //返回結果 
      return (!$result) ? 3 : 4; 
    } 

    /**
     * 刪除文件
     * 
     * @param string $flag 服務器標識
     * @param string $remote 文件的遠程路徑
     * @return int 
     *       0:服務器連接失敗 
     *       1:服務器登錄失敗
     *       2:刪除失敗
     *       3:刪除成功
     */ 
    public function delete($flag = 'test', $remote){ 
      //連接并登錄服務器 
      $connect = $this->openServer($flag); 
      if(($connect === 0) || ($connect === 1)) return $connect; 

      //刪除 
      $result = ftp_delete($connect, $remote); 

      //關閉服務器 
      $this->closeServer($connect); 

      //返回結果 
      return (!$result) ? 2 : 3; 
    } 

    /**
     * 讀取文件
     * 
     * @param string $flag 服務器標識
     * @param string $remote 文件的遠程路徑
     * @return mixed 
     *       0:服務器連接失敗 
     *       1:服務器登錄失敗
     */ 
    public function read($flag, $remote){ 
      //連接并登錄服務器 
      $connect = $this->openServer($flag); 
      if(($connect === 0) || ($connect === 1)) return $connect; 

      //讀取 
      $result = ftp_nlist($connect, $remote); 

      //關閉服務器 
      $this->closeServer($connect); 

      //返回結果 
      foreach ($result as $key => $value){ 
        if(in_array($value, array('.', '..'))) unset($result[$key]); 
      } 
      return array_values($result); 
    } 

    /**
     * 獲取ftp服務器配置
     * 
     * @param string $flag 服務器標識test
     * @return array ftp服務器連接配置
     */ 
    private function getServerConfig($flag = 'test'){ 
      $flag = strtolower($flag); 
      //測試服務器 
      if($flag == 'test') return $this->testServer; 
      //默認返回測試服務器 
      return $this->testServer; 
    } 
  }
  ?>

關于如何在php中利用ftp遠程上傳文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青岛市| 开原市| 和平县| 延津县| 上虞市| 策勒县| 灵璧县| 雷波县| 盘山县| 彭山县| 资讯| 广元市| 凉山| 龙口市| 望城县| 大兴区| 讷河市| 鄱阳县| 金坛市| 芦溪县| 荥阳市| 安义县| 横峰县| 彰武县| 新绛县| 达拉特旗| 永安市| 农安县| 清苑县| 延边| 富顺县| 扶沟县| 阿克陶县| 宾川县| 萍乡市| 沽源县| 封丘县| 行唐县| 胶南市| 广安市| 元阳县|