作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主

文章目录


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

效果

php案例:打包压缩包并下载_服务器

注意

压缩包同级目录下一定要删除同名的文件。不要也会打包.比如下面

php案例:打包压缩包并下载_开发语言_02