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

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

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

效果

注意

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



相关文章
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
12天前
|
PHP 计算机视觉 UED
Buzz库:PHP图像处理中的异步图像下载和保存
Buzz库:PHP图像处理中的异步图像下载和保存
|
6月前
|
存储 安全 PHP
安全开发-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制&文件管理模块&包含&上传&遍历&写入&删除&下载&安全
安全开发-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制&文件管理模块&包含&上传&遍历&写入&删除&下载&安全
|
6月前
|
SQL 前端开发 PHP
php不使用Office包实现上万条数据导出表格
经过上传客户要求主副表迁出,又提出可以将某张表的数据导出excel,听着很简单,实际看数据表发现上万条数据,并且需要关联表查询相关字段,导出的表格才可以被客户看明白。 要是使用office包目前后台内存耗尽,被迫停止运行,所以想要突破百万条数据导出需要另辟它路。所以就是使用了导出CSV并非excel文件。 1、设置程序需要一直运行并设置运行内存(php提示过128M)
|
7月前
|
安全 PHP
【PHP开发专栏】PHP文件上传与下载实现
【4月更文挑战第30天】本文介绍了在PHP中实现文件上传和下载的详细步骤。文件上传通过`$_FILES`全局数组处理,包括设置HTML表单、PHP脚本处理上传及安全性考虑。文件下载则可使用`readfile()`、`fpassthru()`或`file_get_contents()`函数,同时关注安全问题,如防止目录遍历漏洞。文中还提供了一个简单的图片分享网站案例,演示了上传和下载功能的集成。
129 1
|
7月前
|
前端开发 关系型数据库 MySQL
【PHP】thinkPHP6中的MVC思想的小案例
【PHP】thinkPHP6中的MVC思想的小案例
137 2
|
PHP 开发者
阿里云PHP Composer全量镜像正式上线!(附下载地址)
今天,阿里云正式上线PHP Composer全量镜像,所有PHP开发者都可以通过我们的开发者社区developer.aliyun.com/composer加速Composer安装器。
18005 0
|
算法 测试技术 OLAP
【阿里云一周要闻第三期】:阿里云全球市场份额增长近一倍;AnalyticDB数据库登上TPC榜首;阿里云PHP Composer全量镜像正式上线!(附下载地址)
要问预告:阿里云全球市场份额增长近一倍!阿里云AnalyticDB数据库登上TPC榜首;QPS 提升60%,揭秘阿里巴巴轻量级开源 Web 服务器 Tengine 负载均衡算法
4954 0
php下载地址
http://windows.php.net/download/
524 0
|
29天前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
38 0