PHP将图片打包压缩成zip文件

鑫鑫
阅读 275

PHP使用ZipArchive类种$zip->addFile()将图片添加进zip文件
第一步:实例化ZipArchive类;
第二步:定义目录,如果没有则生成一个目录;
第三步:$zip->open()打开zip文件;
第四步:遍历图片将图片写进zip文件中,使用$zip->addFile(),第一个参数必须使用物理路径,第二个参数重命名文件(可不填);
第五步:使用$zip->close()关闭zip文件
第六步:zip文件已经生成,可以直接返回zip文件的域名+路径给前端前端拿到url跳转就可以下载

    public static function zipDown(array $savefile)
    {
        $zip = new \ZipArchive;
        $path = './temp/';
        $root_path = $_SERVER['DOCUMENT_ROOT'];  //根目录
        $siteUrl = sys_config('site_url');       //文件绝对路径
        $filename = $path.date('YmdHis', time()).'.zip';
        if (!is_dir($path))
        {
            if ((mkdir($path, 0777, true)) === false) {
                exit("目录创建失败");
            }
        }
        $res = $zip->open($filename, \ZipArchive::OVERWRITE | \ZipArchive::CREATE);
        if ($res !== TRUE)
        {
            exit("无法找到文件,或文件创建失败");
        }
        foreach ($savefile as $file)
        {
            $file = str_replace($siteUrl, $root_path,$file);  //替换掉图片url的域名
            $zip->addFile($file,basename($file));
        }
        $zip->close();
        return $filename; //需要返回完整的域名+文件路径
    }
文章来源:网络 版权归原作者所有,如涉及知识产权问题,请权利人联系我们,我们将立即处理.
标签:
专栏:   PHP教程
鑫鑫
文章 48 获得 0个赞 共 0个粉丝

推荐阅读 更多精彩内容