无限星辰工作室-客户无限互联网动力之源

标题: PHP打包下载函数 [打印本页]

作者: crx349    时间: 2016-8-17 18:08
标题: 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. ?>
复制代码







欢迎光临 无限星辰工作室-客户无限互联网动力之源 (https://www.xmspace.net/) Powered by Discuz! X3.4