php ZipArchive压缩文件

2019-08-20  本文已影响0人  骑着大象去上班
        // 要压缩的文件夹
        $dir=getBasePath().'/storage/AgentQrCode/201908206320/';
        // 保存的压缩文件
        $compress_path=$dir.'file.zip';
        $rootPath = realpath($dir);

// Initialize archive object
        $zip = new \ZipArchive();
        $zip->open($compress_path, \ZipArchive::CREATE | \ZipArchive::OVERWRITE);

// Create recursive directory iterator
        /** @var SplFileInfo[] $files */
        $files = new \RecursiveIteratorIterator(
            new \RecursiveDirectoryIterator($rootPath),
            \RecursiveIteratorIterator::LEAVES_ONLY
        );

        foreach ($files as $name => $file)
        {
             // 我们要跳过所有子目录
            if (!$file->isDir())
            {
                // 用 substr/strlen 获取文件扩展名
                $filePath = $file->getRealPath();
                $relativePath = substr($filePath, strlen($rootPath) + 1);

                // Add current file to archive
                $zip->addFile($filePath, $relativePath);
            }
        }
        $zip->close();
image.png
上一篇下一篇

猜你喜欢

热点阅读