php 操作FTP (YII2框架)

2022-09-11 10:24:10 浏览数 (1)

Yii2框架测试
主要是大多数新手不怎么会用gitHub,所以写的比较详细!
  1. 首先打开php.ini中的ftp扩展项extension=php_ftp.dll 去gitHub搜索 如何选择用哪个扩展?
  2. 选择星星数多的
  3. 选择最近还在更新的(说明有人还在维护此代码)

直接根据提示下载就行了

进入项目根目录执行下载就行了
下载后查看:
测试:
代码语言:javascript复制
<?php
/**
     * https://github.com/yii2mod/yii2-ftp
     */
    public function actionUseftp()
    {
        try {
            //连接到服务器FTP:
            $ftp = new yii2modftpFtpClient();
            $config = [
                'host' => '',//主机地址
                'username' => '',//用户名
                'password' => '',//密码
                'source_directory' => '../createSql',//待上传的目录路径
                'target_directory' => '/htdocs/',//上传到服务器的目录路径
            ];
            if (!is_array($config) && empty($config)) {
                return;
            }

            $ftp->connect($config['host']);
            $ftp->login($config['username'], $config['password']);
            //或通过SSL(端口22或其他端口)连接到服务器FTP:
            /**
            $ftp = new yii2modftpFtpClient();
            $ftp->connect($config['host'], true, 22);
            $ftp->login($config['username'], $config['password']);
            */
            //注意:连接在脚本执行结束时隐式关闭(当对象被销毁时)。因此,除了显式重新连接外,没有必要调用$ftp->close()。

            //使用上传所有文件和目录很容易:
            //以二进制模式上传
            $ftp->putAll($config['source_directory'],$config['target_directory']);
            //等于
            /**
            $ftp->putAll($config['source_directory'],$config['target_directory'], FTP_BINARY);
            */
            //或以ASCII模式上传
            /**
            $ftp->putAll($config['source_directory'],$config['target_directory'], FTP_ASCII);
            */
            //注意:FTP_ASCII和FTP_BINARY是预定义的PHP内部常量。

            //获取目录大小:

            //当前目录的大小
            /**
            $size = $ftp->dirSize();

            //给定目录的大小
            $size = $ftp->dirSize('/path/of/directory');
            */

            //计算目录中的项目:
            /**
            //当前目录中的count
            $total = $ftp->count();
            //在给定目录中计数
            $total = $ftp->count('/path/of/directory');
            //只计算当前目录中的“文件”
            $total_file = $ftp->count('.', 'file');
            //只计算给定目录中的“文件”
            $total_file = $ftp->count('/path/of/directory', 'file');
            //只计算给定目录中的“目录”
            $total_dir = $ftp->count('/path/of/directory', 'directory');
            //只计算给定目录中的“符号链接”
            $total_link = $ftp->count('/path/of/directory', 'link');
            */
            //所有文件和目录的详细列表:
            /**
            // 扫描当前目录并返回每个项的详细信息
            $items = $ftp->scanDir();
            //扫描当前目录(递归)并返回每个项的详细信息
            var_dump($ftp->scanDir('.', true));
            */
            /**

            //支持所有FTP PHP函数,并有一些改进:
            // //请求在FTP服务器上执行命令
            $ftp->exec($command);

            //打开或关闭被动模式
            $ftp->pasv(true);

            // 通过FTP设置文件的权限
            $ftp->chmod('0777', 'file.php');

            //删除一个目录
            $ftp->rmdir('path/of/directory/to/remove');

            // 删除目录(递归)
            $ftp->rmdir('path/of/directory/to/remove', true);

            //创建一个目录
            $ftp->mkdir('path/of/directory/to/create');

            //创建一个目录(递归),如果不存在子目录,则自动创建子目录
            $ftp->mkdir('path/of/directory/to/create', true);

            // and more ...

            //获取远程FTP服务器的帮助信息:
            //注意:结果取决于FTP服务器。
            var_dump($ftp->help());
            */
        }catch (Exception $ex) {
            Logic::vd($ex);
        }
    }

0 人点赞