cyg.php
<?php $fileList=["D:/phpstudy_pro/WWW/date.zip","D:/phpstudy_pro/WWW/date1.zip"];//文件 $filename = "test.zip";//把66.txt+666.txt文件都压缩进test.zip压缩包中 $zip = new ZipArchive();//创建压缩包镀锡 $zip->open($filename,ZipArchive::CREATE); //打开压缩包 foreach($fileList as $file){//遍历两个文件date.txt date1.txt $zip->addFile($file,basename($file)); //向压缩包中添加文件(date.txt date1.txt) } $zip->close(); //关闭压缩包 //下载文件 $file = fopen($filename, "r");//打开压缩包 //返回的文件类型 Header("Content-type: application/octet-stream"); //按照字节大小返回 Header("Accept-Ranges: bytes"); //返回文件的大小 Header("Accept-Length: " . filesize($filename)); //这里设置客户端的弹出对话框显示的文件名 Header("Content-Disposition: attachment; filename=" . $filename); //一次性将数据传输给客户端 //echo fread($file, filesize($filePath)); //一次只传输1024个字节的数据给客户端 //向客户端回送数据 $buffer = 1024;// //判断文件是否读完 while (!feof($file)) { //将文件读入内存 $file_data = fread($file, $buffer); //每次向客户端回送1024个字节的数据 echo $file_data; } //将生成的zip文件在服务器端删除,只需要客户端下载就行了 @unlink($filename);
效果
注意
压缩包同级目录下一定要删除同名的文件。不要也会打包.比如下面