文件批量(打包)下載,ZipArchive()

原创 2016年08月28日 17:46:32

//獲取待下載文件的路徑列表,一維數組,成員值:待下載文件的路徑

function list_dir($dir){

$result = array();
if (is_dir($dir)){
$file_dir = scandir($dir);
foreach($file_dir as $file){
if ($file == '.' || $file == '..'){
continue;
}
elseif (is_dir($dir.$file)){
$result = array_merge($result, list_dir($dir.$file.'/'));
}
else{
array_push($result, $dir.$file);
}
}
}
return $result;

}


function multiDwonload($datalist){
// 獲取待下載文件的路徑列表
// $datalist=list_dir($dir);
// 最終生成的文件名(含路徑)   
$filename = "./public/download/borekare.zip";


// 確保每次下載都是最新的打包
if(file_exists($filename)){
unlink($filename);
}
// 生成下載文件包 
if(!file_exists($filename)){   
 
// 使用本類,linux需開啟zlib,windows需開啟php_zip.dll(但測試使用PHP5.4,php.ini無此擴展,使用正常)
   $zip = new ZipArchive();
   if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {   
       exit('無法打開文件,或者文件創建失敗');
   }   
   foreach( $datalist as $val){   
       if(file_exists($val)){   
        //第二個參數是放在壓縮包中的文件名稱,如果文件可能會有重复,則需要注意一下 
           $zip->addFile( $val, basename($val));
       }   
   }   
   // 關閉
   $zip->close();
}   
// 即使創建,仍有可能失敗
if(!file_exists($filename)){   
   exit("無法找到文件"); 
}   


header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
// 文件名   
header('Content-disposition: attachment; filename='.basename($filename)); 
// zip格式
header("Content-Type: application/zip");    
// 告訴瀏覽器,這是二進制文件   
header("Content-Transfer-Encoding: binary"); 
// 告訴瀏覽器,文件大小 
header('Content-Length: '. filesize($filename));   
@readfile($filename);
}


版权声明:本文爲博主原創文章,未經允許不得轉載。

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载

原文网址:http://www.cnblogs.com/shsgl/p/4675596.html PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用...
  • molong421
  • molong421
  • 2016年02月15日 14:35
  • 2737

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载

PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有...
  • dreamboycx
  • dreamboycx
  • 2015年10月21日 15:26
  • 2832

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载

http://my.oschina.net/junn/blog/104464 PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PH...
  • loongwong2011
  • loongwong2011
  • 2016年08月29日 17:19
  • 1222

ASP.NET多文件批量打包下载

在项目实施中,遇到了将多个文件一起打包后,提供给用户下载。如:在一个ASP.NET的开发项目中,通过一个GridView选中对应行数据的CheckBox,就可以实现对选中文件的打包下载了。 在对多文...
  • whl632359961
  • whl632359961
  • 2015年06月04日 15:32
  • 644

java将文件批量打包后并下载

struts2 ,spring,spring jdbc框架: /** * 批量下载 */ public void batchDowload(){ String ent_id = (St...
  • caisenbinbeida2009
  • caisenbinbeida2009
  • 2014年11月20日 09:12
  • 471

ASP.NET多文件批量打包下载

在项目实施中,遇到了将多个文件一起打包后,提供给用户下载。如:在一个ASP.NET的开发项目中,通过一个GridView选中对应行数据的CheckBox,就可以实现对选中文件的打包下载了。 在对...
  • xttxqjfg
  • xttxqjfg
  • 2013年02月01日 11:17
  • 5883

文件批量打包下载

package zy_cms_web;import java.io.BufferedInputStream; import java.io.File; import java.io.FileInp...
  • qq_27843945
  • qq_27843945
  • 2017年12月15日 14:16
  • 31

ASP.NET多文件批量打包下载

ASP.NET多文件批量打包下载 (这个好) 2012-5-10 03:22| 发布者: benben| 查看: 1195| 评论: 0 摘要: 在项目实施中,遇到了将多个...
  • wanglei19880622
  • wanglei19880622
  • 2013年03月18日 15:20
  • 829

文件批量上传和打包下载

1、因为是上传多个文件所以用的是个插件zyupload插件 2、需要引入的插件如下所示; 3、页面相关信息如下图所示:4、数据库中的相关信息如下所示: 5、后台的相关代码如下所示:packa...
  • jinpanjie
  • jinpanjie
  • 2017年05月09日 17:15
  • 499

java文件下载功能代码(单文件下载、多文件批量打包下载)——普遍适用

程序员在做web等项目的时候,往往都需要添加文件上传、下载、删除的功能,有时是单文件,有时多文件批量 操作,而这些功能的代码程序员可以自己收藏起来当成工具使用,这样,程序员在进行程序设计的时候就会事...
  • alan_liuyue
  • alan_liuyue
  • 2017年05月26日 18:07
  • 2871
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件批量(打包)下載,ZipArchive()
举报原因:
原因补充:

(最多只允许输入30个字)