ftp 操作類

  • 2018-11-15 10:12
  • PHP二次開發
  • 閱讀(702)
  • 評論(24
  • 來源:互聯網
  • 摘要: class FTP{ public $off; // 返回操作狀態(成功/失敗) public $conn_id; // FTP連接 /** * 方法:FTP連接 * @FTP_HOST -- FTP主機 * @FTP_PORT -- 端口 * @FTP_USER -- 用戶名 * @FTP_PASS -- 密碼 */ const FTP_HOS ...
    class FTP
    {
    public $off; // 返回操作狀態(成功/失敗)
    public $conn_id; // FTP連接
    /**
    * 方法:FTP連接
    * @FTP_HOST -- FTP主機
    * @FTP_PORT -- 端口
    * @FTP_USER -- 用戶名
    * @FTP_PASS -- 密碼
    */
    const FTP_HOST='www.fujvln.live';
    const FTP_PORT='21';
    const FTP_USER='admin';
    const FTP_PASS='123456';

    function __construct()
    {
    $this->conn_id = @ftp_connect(self::FTP_HOST,self::FTP_PORT) or die("FTP服務器連接失敗");
    @ftp_login($this->conn_id,self::FTP_USER,self::FTP_PASS) or die("FTP服務器登陸失敗");
    @ftp_pasv($this->conn_id,1); // 打開被動模擬
    }
    /**
    * 方法:上傳文件
    * @path -- 本地路徑
    * @newpath -- 上傳路徑
    * @type -- 若目標目錄不存在則新建
    */
    function up_file($path,$newpath,$type=true)
    {
    if($type) $this->dir_mkdirs($newpath);
    $this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);
    if(!$this->off) echo "文件上傳失敗,請檢查權限及路徑是否正確!";
    }
    /**
    * 方法:移動文件
    * @path -- 原路徑
    * @newpath -- 新路徑
    * @type -- 若目標目錄不存在則新建
    */
    function move_file($path,$newpath,$type=true)
    {
    if($type) $this->dir_mkdirs($newpath);
    $this->off = @ftp_rename($this->conn_id,$path,$newpath);
    if(!$this->off) echo "文件移動失敗,請檢查權限及原路徑是否正確!";
    }
    /**
    * 方法:復制文件
    * 說明:由于FTP無復制命令,本方法變通操作為:下載后再上傳到新的路徑
    * @path -- 原路徑
    * @newpath -- 新路徑
    * @type -- 若目標目錄不存在則新建
    */
    function copy_file($path,$newpath,$type=true)
    {
    $downpath = tempnam(getcwd()."/", "tmp_"); // 創建唯一的臨時文件
    $this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下載
    if(!$this->off) echo "文件復制失敗,請檢查權限及原路徑是否正確!";
    $this->up_file($downpath,$newpath,$type);
    unlink($downpath); // 刪除臨時文件
    }
    /**
    * 方法:刪除文件
    * @path -- 路徑
    */
    function del_file($path)
    {
    $this->off = @ftp_delete($this->conn_id,$path);
    return $this->off;
    }
    /**
    * 方法:生成目錄
    * @path -- 路徑
    */
    function dir_mkdirs($path)
    {
    $path_arr = explode('/',$path); // 取目錄數組
    $file_name = array_pop($path_arr); // 彈出文件名
    $path_div = count($path_arr); // 取層數
    foreach($path_arr as $val) // 創建目錄
    {
    if(@ftp_chdir($this->conn_id,$val) == FALSE)
    {
    $tmp = @ftp_mkdir($this->conn_id,$val);
    if($tmp == FALSE)
    {
    echo "目錄創建失敗,請檢查權限及路徑是否正確!";
    exit;
    }
    @ftp_chdir($this->conn_id,$val);
    }
    }
    for($i=1;$i<=$path_div;$i++) // 回退到根
    {
    @ftp_cdup($this->conn_id);
    }
    }

    /*
    * 文件下載
    */
    function download($select_file)
    {
    $file = explode('/',$select_file);
    $file = end($file);
    $tmpfile = tempnam(getcwd()."/", ""); // 創建唯一的臨時文件
    $tmpfile = $tmpfile.$file;
    if(ftp_get($this->conn_id, $tmpfile, $select_file, FTP_BINARY)) { // 下載指定的文件到臨時文件
    $this->close(); // 關閉連接
    }
    return $tmpfile;
    }

    /**
    * 方法:關閉FTP連接
    */
    function close()
    {
    @ftp_close($this->conn_id);
    }
    }

    調用方式:
    //ftp 下載
    $file_path = "/img/test.jpg"
    $ftp = new FTP();
    $tmp_file = $ftp->download($file_path);


    PHP技術交流QQ群:422137578

    除非注明,文章均為 PHP二次開發 原創,轉載請注明本文地址:http://www.fujvln.live/article-2696-1.html

    相關閱讀

    發表評論

    最新評論

    引用 weqwqwe   2019-6-28 14:34
    {:soso__3669389859068460655_4:}
    引用 今日新鮮事   2019-6-23 00:16
    文章不錯非常喜歡
    引用 輕斷食減肥   2019-5-31 16:21
    剛好最近在了解這方面的知識,看了博主的分析對我幫助很大。
    引用 新聞頭條   2019-5-21 00:37
    文章不錯非常喜歡
    引用 我愛輔助網   2019-4-23 21:03
    很專業的文章,贊一個~
    引用 財經資訊   2019-4-9 09:01
    文章寫得這么專業,一看就知道博主是專業人士
    引用 網賺   2019-4-8 17:16
    厲害了 博主
    引用 頭條新聞   2019-4-7 23:33
    文章不錯非常喜歡
    引用 日/夜/擼/成/人/電/影   2019-4-6 15:39
    $file_path = "/img/test.jpg"
    引用 妙文屋   2019-3-27 13:18
    不錯不錯,來看看。。
    引用 跳棋下載   2019-3-25 09:13
    文章很不錯
    引用 在家加工手工活   2019-3-25 09:10
    支持
    引用 科士達蓄電池   2019-3-6 14:34
    支持一下,不錯。
    引用 麻將游戲   2019-2-28 16:23
    文章很不錯,贊一個,謝謝分享
    引用 qq綠色版   2019-2-24 15:46
    謝謝分享啊!@~
    引用 90人網絡   2019-2-17 22:45
    用西部建站助手怎么就是搭建不了ftp服務,很無語
    引用 薇肯皮膚管理   2019-1-11 14:35
    為啥老是鏈接超時你這個網站???也有可能是公司網不好
    引用 big bag filling machine   2019-1-8 11:03
    有用
    引用 sand bagging machine   2019-1-4 15:21
    謝謝
    引用 php二次開發   2018-12-24 09:15
    FTP操作類,支持SFTP 么。

    查看全部評論(24)

    用戶名:  *

    郵 箱:  *

    網 址: 注意加上“http://”哦!