php多文件打包压缩下载简单示例
来源:原创 更新时间:2022-12-13 22:14:08 编辑:管理员 浏览:629
调用php中内置扩展ZipArchive类可以进行文件压缩打包下载,(PHP 5>=5.2.0,PHP 7,PECL zip>=1.1.0)
简单示例:
<?phpfunction zipfile($file_path){ // 压缩多个文件 $fileList = explode(',', $file_path); $filename = time() . ".zip"; // 压缩包所在的位置路径 $zip = new ZipArchive(); $zip->open($filename, ZipArchive::CREATE); //打开压缩包 foreach ($fileList as $file) { $zip->addFile($file, basename($file)); //向压缩包中添加文件 } $rs = $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); } zipfile('E:\www\test\filetest\getfile\1.jpg,E:\www\test\filetest\getfile\1.txt');?>