PHP 文件打包并下载

有个这样的需求,将多个文件打包成zip格式并下载到本地

可根据 ZipArchive这个类来实现此功能

我自己也研究了一下,然后把搞出来了 ,经测试绝对好用

话不多说直接上代码

$params = $_REQUEST; //获取前端form表单传过来的选中文件的id

if(empty($params['files'])){

echo "";exit;

}

$id = $params['files'];//文件id

foreach($id as $k => $v){

$arr[] = DB::table('GoodsFile')->where('id',$v)->field('files,files_name')->select();

foreach($arr as $key=>$val){

$arr1[$key] = $val[0];

}

}

foreach($arr1 as $k=>$v){

$file_name[] = ($v['files_name']);// 文件名称

$filepath=iconv("utf-8","gb2312",$v['files']);

$file_path[]=$_SERVER['DOCUMENT_ROOT'].'/'.$filepath; //使用绝对路径

}

$time = time();

$filetime = date('YmdHis', $time);

$file_url = $_SERVER['DOCUMENT_ROOT']."/static/upload/zip/"."下载文件".$filetime.".zip"; // 压缩包所在的位置路径

$zip = new ZipArchive();

$zip->open($file_url, ZipArchive::CREATE); //打开压缩包

foreach ($file_path as $file) {

$zip->addFile($file, basename($file)); //向压缩包中添加文件

}

$rs = $zip->close(); //关闭压缩包

//打开文件---先判断再操作

if(!file_exists($file_url)){

echo "文件不存在";

return ; //直接退出

}

//这里是输出下载;

header("Cache-Control:max-age=0");

header("Content-Description:FileTransfer");

header('Content-disposition:attachment;filename='.basename($file_url));//文件名

header("Content-Type:application/zip");//zip格式的

header("Content-Transfer-Encoding:binary");//告诉浏览器,这是二进制文件

header('Content-Length:'.filesize($file_url));//告诉浏览器,文件大小

@readfile($file_url);//输出文件;

php 生成zip并下载,PHP 实现文件打包成zip格式并下载相关推荐

  1. SpringBoot将文件打包成zip存放或导出

    目录 前言 环境准备 将文件打包成Zip存放 代码 测试 将文件打包成zip并导出 代码 测试 结尾 前言 相信各位看官在工作中都会遇到过要把多个文件打包成一个压缩文件然后导出,或者将文件打包成Zip ...

  2. 关于springmvc下服务器文件打包成zip格式下载功能

    关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储 版权声明:本文为博主原创 ...

  3. Java将多个文件打包成ZIP并下载

    Java将多个文件打包成ZIP并下载 需求是多个文件需要同时打包成zip压缩文件并下载到本地,首先我需要的是知道下载文件的路径.我有一个专门的sys_file_info表,表中有对应的文件路径.业务表 ...

  4. python打包zip文件_python 解压文件,合并文件 打包成zip格式文件 生成MD5值

    #!/usr/bin/env python #_*_encoding:utf-8 # 2018/05/29 #augustyang #2.0 ''' 解压文件,合并文件 打包成zip格式文件 生成MD ...

  5. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...

    ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...

  6. 文件打包成zip类型文件

    研究了一下,如何把文件打包成Zip文件. 下面是我经历的进程: 1. 首先看到了微软本身的打包代码,是通过System.IO.Packaging 命令空间来进行打包,你可以点击以上的链接来查看其如何打 ...

  7. java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){String filePath ="";//文件路径Str ...

  8. java 把文件打包成zip_java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){ String filePath ="";//文件路径 S ...

  9. 用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解)

    用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解) 前言 原理 工具 步骤 延伸 博主联系方式 前言 本人喜欢收集各种优秀的视频,但是很多情况下我们看到的视 ...

最新文章

  1. rsync的配置应用
  2. 关键字static在C和C++中的区别
  3. android 创建虚拟内存,在 Android 的 /data 目录下添加虚拟内存
  4. VTK:图片之ImageFFT
  5. System.Web.HttpRequestValidationException——从客户端检测到危险的Request值
  6. boost helloworlld
  7. 研究所月入两万?见过越上班工资越少的骚操作吗...
  8. 网页设计基础知识总结
  9. bcm94352屏蔽第20针脚图_10核20线程的性能怪兽 十代酷睿首发评测
  10. JAVA毕设项目vue架构云餐厅美食订餐系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
  11. 国产杂牌机java_国货精品 山寨 杂牌 HiPhone 诺卡 MTK联发科 mrp
  12. Telnet 详解 及命令使用
  13. 论坛数据库的几种建表----年度项目拙计有感(前半部分转)
  14. ubuntu22.04 安装ROS2
  15. 800套绝美PPT模板免费下载
  16. pwm一个时间单位_详解PWM原理、频率与占空比
  17. 新日+苏宁O2O,电动车市迎来智慧零售新时代
  18. 2-44钟静雯_day04
  19. PLC远程监控技术为制药设备带来新发展
  20. 计算机性能和显卡的提升,除了CPU和显卡,这个东西也能提升你电脑性能

热门文章

  1. 【web前端】CSS盒子模型
  2. 如何让计算机和服务器时间同步,如何设置电脑及服务器时间与授时服务器时间同步(耿娟平供稿)...
  3. 不用重启修改Linux主机名
  4. SaaS型WAF如何接入腾讯云的web应用防火墙
  5. 泼辣修图(Polarr)是什么软件,有泼辣修图Polarr pro免费解锁版激活码吗?
  6. 跨境电商必读:从测评到爆款的最大限度降低砍单和封号风险的有效策略
  7. OLDboy-python第八期运维教程
  8. 图像数字化过程:采样与量化
  9. 【SIGIR 2022】ADPL: Adversarial Prompt-based Domain Adaptation for Dialogue Summarization with Knowled
  10. QQ群关系可视化3D查询搭建