温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在php中利用ftp远程上传文件

发布时间:2020-12-14 15:42:46 来源:亿速云 阅读:206 作者: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