前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >php案例:打包压缩包并下载

php案例:打包压缩包并下载

作者头像
贵哥的编程之路
发布2022-10-24 17:58:27
发布2022-10-24 17:58:27
73300
代码可运行
举报
运行总次数:0
代码可运行

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

文章目录


cyg.php

代码语言:javascript
代码运行次数:0
运行
复制
<?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);

效果

注意

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • cyg.php
  • 效果
  • 注意
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档