php 3.2 生成压缩文件,并下载

复制代码
    public function zip_download()
    {

        $array = array(
            'http://local.qki.com/site_upload/erweima/20190826/1566809174292_100063_865373044010119.png',
            'http://local.qki.com/site_upload/erweima/20190826/1566809222969_100064_865373044013253.png'
        );

        $tmpFile = tempnam('/temp', '');        //临时文件
        $zip = new \ZipArchive();                           //php内置的压缩类
        $zip->open($tmpFile, \ZipArchive::CREATE);

        foreach ($array as $value) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_POST, 0);
            curl_setopt($ch, CURLOPT_URL, $value);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $fileContent = curl_exec($ch);
            curl_close($ch);
            $zip->addFromString(basename($value), $fileContent);  //将文件循环压缩到压缩包
        }

        $filename = date('YmdHis',time()) . '_file.zip';
        $zip->close();
        header('Content-Type: application/zip');
        header('Content-disposition: attachment; filename=' . $filename);
        header('Content-Length: ' . filesize($tmpFile));  
        readfile($tmpFile);
        unlink($tmpFile);
    }
复制代码

 

posted @   盘思动  阅读(432)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示