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);