• 在thinkphp中批量生成Word并压缩打包下载


        首先我们要清楚流程,第一步:生成相应的目录,(判断目录是否存在,不存在就创建),第二步:循环生成word文档,第三步:压缩成zip文件并下载
        然后我们再进行代码的实现:
        第一:我们要写两个函数,创建文件夹和删除文件夹
        //创建文件夹 的函数
        function makeDir($path) {
            if (empty ( $path )) {
                echo "路径不能为空";
            }
            $dirs = array ();
            $path = preg_replace ( '/(\/){2,}|{\\\}{1,}/', '/', $path );
            $dirs = explode ( "/", $path );
            $path = "";
            foreach ( $dirs as $folder ) {
                $path .= $folder . "/";
                if (! is_dir ( $path )) {
                    mkdir ( $path, 0700 );
                }
            }
            if (is_dir ( $path )) {
                return TRUE;
            } else {
                return FALSE;
            }
        }
        //删除文件夹 的函数
        function rmdirs($dir) {
            $dir = realpath ( $dir );
            if ($dir == '' || $dir == '/' || (strlen ( $dir ) == 3 && substr ( $dir, 1 ) == '://')) {
                return false;
            }
            if (false !== ($dh = opendir ( $dir ))) {
                while ( false !== ($file = readdir ( $dh )) ) {
                    if ($file == '.' || $file == '..') {
                        continue;
                    }
                    $path = $dir . DIRECTORY_SEPARATOR . $file;
                    if (is_dir ( $path )) {
                        if (! rmdirs ( $path )) {
                            return false;
                        }
                    } else {
                        unlink ( $path );
                    }
                }
                closedir ( $dh );
                rmdir ( $dir );
                return true;
            } else {
                return false;
            }
        }
        第二:写出相应的代码
        <?php
            $dir_teaname = './Public/Word/';  //要创建的文件夹名称   Word
            //判断目录是否存在,存在就删除
             if(is_dir($dir_teaname)){
                 rmdirs($dir_teaname); //删除目录
             }
             //创建目录
             $mk = makeDir( $dir_teaname );
            if( !$mk )
            {
               echo "创建目录失败!";
            }
            //循环生成word
             foreach ($appraise_score as $key => $val)
             {
                //生成word文档
                import("@.ORG.Word");  //下面会给Word类的链接地址,下载不需要积分
                $savePath = $dir_teaname;
                $word = new word();
                $word->start();
               
                //thinkphp中的显示页面  也可以直接用   echo "这里是要生成的内容";
                $this->display();
               
                $wordname = time().$key.'.doc'; //生成的word名称
                $wordname=iconv("utf-8","gb2312",$wordname);  //编码转换
                $word->save($savePath.$wordname);      
             }
            import("@.ORG.PHPZip");  //下面会给PHPZip类的链接地址,下载不需要积分
            $archive  = new PHPZip();
             //压缩下载  不存储在指定目录   第一个参数:要压缩下载的文件夹    第二个参数:下载文件名
            $this_depart = '下载以后的压缩包名称';  //在下载时候以及下载成功的压缩包名称
            $archive->ZipAndDownload($dir_teaname,$this_depart);  
        ?>
        以上就是全部内容
       
        下面是Word类和PHPZip累的下载地址:
            PHPZip类Word类

    广告一下:南京睿风网络 睿风博客  睿风电影

  • 相关阅读:
    linux 部署项目命令
    List remove方法小坑
    centos7 安装mongoDB
    windows git 清除已保存的密码
    windows平台安装配置Gitblit
    oracle
    Mac 配置多jdk 随意切换
    idea远程调试jar包
    centos7 安装elasticsearch
    正则校验
  • 原文地址:https://www.cnblogs.com/tsunlight/p/2832089.html
Copyright © 2020-2023  润新知