PHP实例代码分析:将文件夹压缩成ZIP

php中生成zip其实很简单,只要下面2步就能完成。

1.请先下载我准备好的zip.php工具类,下载后解压,将里面的文件放入对应的目录中,我是放在虚拟目录下的include文件夹中。

2.在你的php文件中加入下面代码即可

  1. require_once "./include/zip.php";  
  2. $zip = new PHPZip();  
  3. //$zip -> createZip("要压缩的文件夹目录地址", "压缩后的文件名.zip");   //只生成不自动下载  
  4. $zip -> downloadZip("要压缩的文件夹目录地址""压缩后的文件名.zip");  //自动下载  


实例:可以参考下面的伪代码来看一个具体的使用场景:

  1. require_once "./include/zip.php";  
  2.  
  3. if (!$download) {  
  4. exit();  
  5. }  
  6. set_time_limit(60);  
  7.  
  8. $tmpManager = new TmpManager(); //假设我们有一个类来完成后面的操作  
  9.  
  10. $tempfolder = array();  
  11. $tempfile = array();  
  12. //假设我们是通过在页面上选择checkbox来下载已选的文件夹或文件,并一同打包  
  13. for($i = 0;$i < $checkboxnum;$i++) {  
  14. $value = ${"select".$i};  
  15. if ($value != '') {  
  16. $this_type = substr($value, 0, 1);  
  17. $this_id = substr($value, 1);  
  18. //将文件夹和文件的情况分开处理  
  19. if ($this_type == 'd') {  
  20. $tempfolder[] = $this_id;  
  21. }  
  22. elseif ($this_type == 'f') {  
  23. $tempfile[] = $this_id;  
  24. }  
  25. }  
  26. }  
  27.  
  28. @mkdir($tempdir);  
  29.  
  30. $curtempdir = "$tempdir/".$userid//不同用户在不同的临时文件夹下操作  
  31.  
  32. if (file_exists($curtempdir)) {  
  33. $tmpManager->DeleteDir($curtempdir); //删除旧的文件夹  
  34. }  
  35.  
  36. if (sizeof($tempfolder) > 0 || sizeof($tempfile) > 0) {  
  37. mkdir($curtempdir, 0777); //如果有要打包的文件货文件夹,重新创建文件夹  
  38. }  
  39.  
  40. if (sizeof($tempfile) > 0) {  
  41. $tmpManager->CopyFile($tempfile,$curtempdir); //将要下载的文件copy到创建的文件夹  
  42. }  
  43.  
  44. if (sizeof($tempfolder) > 0) {  
  45. $tmpManager->CopyFolder($tempfolder,$curtempdir); //将要下载的文件夹copy到创建的文件夹  
  46. }  
  47.  
  48. $zip = new PHPZip();  
  49. $zip -> downloadZip($curtempdir"file_".date('Ymd').".zip"); //打包并下载 

zip.php

转载请注明:代码家园 » PHP实例代码分析:将文件夹压缩成ZIP

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
  • 匿名
    2012-09-28 11:44:39发表

    zip.php这个类在哪下载啊

  • 匿名
    2012-09-28 11:39:21发表

    zip.php这个类在哪下载啊

  • 匿名
    2012-08-20 14:13:16发表

    zip.php这个类在哪下载啊