PHP多文件打包下载

down.php页面代码:

<?php
    echo "<a href='doDown.php?f=./code.php'>1</a><br>";
    echo "<a href='doDown.php?f=./check.php'>2</a><br>";
    echo "<a href='doDown.php?f1=./check.php&f2=./code.php'>all</a><br>";


dodown.php页面代码:

<?php

    /**    
     *    PHP多文件打包下载
     *    此功能的代码实现用到了一个PHP中的内置类ZipArchive 使用该类,linux需开启zlib,windows需取消php_zip.dll前的注释
     *    实现的基本思路:
     *     1、实例化ZipArchive类
     *    2、生成随机的压缩包文件名
     *    3、创建一个空的压缩包
     *    4、将将要下载的文件添加到压缩包中
     *    5、关闭压缩包 注意此步不能省略 否则没法添加文件到压缩包中
     *    6、此步骤是正常的文件下载步骤
     */

    $f1 = $_GET['f1'];
    $f2 = $_GET['f2'];
    
    $datalist = array($f1,$f2);
    $zipname=date('YmdHis',time()).".zip";
    $zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释  
    $zip->open($zipname,ZipArchive::OVERWRITE);//创建一个空的zip文件
    foreach( $datalist as $val){   
        if(file_exists($val)){  
            $zip->addFile($val, basename($val));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下  
        }  
    }  
    $zip->close();
    header('Content-Type:application/zip');
    
    header('Content-Disposition:attachment;filename='.basename($zipname));
    
    //header("Content-Transfer-Encoding: binary");    //告诉浏览器,这是二进制文件
    
    header('Content-Length:'.filesize($zipname));
    
    readfile($zipname);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值