找回密码
 立即注册

QQ登录

只需一步,快速开始

PHP打包下载函数

  1. <?php
  2. //获取文件列表
  3. function list_dir($dir){
  4.             $result = array();
  5.             if (is_dir($dir)){
  6.                     $file_dir = scandir($dir);
  7.                     foreach($file_dir as $file){
  8.                             if ($file == '.' || $file == '..'){
  9.                                     continue;
  10.                             }
  11.                             elseif (is_dir($dir.$file)){
  12.                                     $result = array_merge($result, list_dir($dir.$file.'/'));
  13.                             }
  14.                             else{
  15.                                     array_push($result, $dir.$file);
  16.                             }
  17.                     }
  18.             }
  19.             return $result;
  20.     }

  21. //获取列表
  22. $datalist=list_dir('../');
  23. $filename = "./bak.zip"; //最终生成的文件名(含路径)   
  24. if(!file_exists($filename)){   
  25. //重新生成文件   
  26.     $zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释   
  27.     if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {   
  28.         exit('无法打开文件,或者文件创建失败');
  29.     }   
  30.     foreach( $datalist as $val){   
  31.         if(file_exists($val)){   
  32.             $zip->addFile( $val, basename($val));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下   
  33.         }   
  34.     }   
  35.     $zip->close();//关闭   
  36. }   
  37. if(!file_exists($filename)){   
  38.     exit("无法找到文件"); //即使创建,仍有可能失败。。。。   
  39. }   
  40. header("Cache-Control: public");
  41. header("Content-Description: File Transfer");
  42. header('Content-disposition: attachment; filename='.basename($filename)); //文件名   
  43. header("Content-Type: application/zip"); //zip格式的   
  44. header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件   
  45. header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小   
  46. @readfile($filename);
  47. ?>
复制代码



本教程由无限星辰工作室CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:https://xmspace.net/thread-453-1-1.html
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 LOT智能硬件聚合平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

发表于 2016-8-17 18:08:12 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 0 条回复!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美图秀

    • 自建远程桌面服务器 rustdesk
    • Discuz!x3.4 账号保镖 自动冻结账号无效解
    • PVE换主板后 网络丢失解决方法
    • Kvm 虚拟机迁移到PVE里面
    • Discuz!x3,4 阿里云DCDN配置获取客户端ip
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表