Example #1
0
function zipdir($dir, array $exclude)
{
    global $zip;
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if (!in_array($object, $exclude) && substr($object, 0, 2) != '._') {
                echo "Packing: " . $object . "<br>\n";
                if (filetype($dir . "/" . $object) == "dir") {
                    zipdir($dir . "/" . $object, $exclude);
                } else {
                    $zip->addFile($dir . "/" . $object, $dir . '/' . $object);
                }
                //unlink($dir . "/" . $object);
            } else {
                echo "Omitting: " . $object . "<br>\n";
            }
        }
        reset($objects);
        //rmdir($dir);
    }
}
 public function zippro()
 {
     //打包项目
     require_once COMMON_PATH . "tp_common.php";
     //引入自定义的类
     require_once COMMON_PATH . "tpmaker.class.php";
     //引入自定义的类
     require_once COMMON_PATH . "zip.class.php";
     //引入自定义的类
     $buideid = $_REQUEST['id'];
     $t = new tpmaker();
     $t->projectid = $buideid;
     $zippath = $t->getapppath();
     $projects = $t->getprojects();
     $filename = './Backup/ZIP/' . $projects['proname'] . ".zip";
     $z = new PHPZip();
     $filesize = @filesize($filename);
     $_SESSION['zipdir'] = '';
     //所有子目录
     $_SESSION['zipfile'] = '';
     //所有子目录
     zipdir($zippath);
     $dirs = $_SESSION['zipdir'];
     //所有子目录
     $files = $_SESSION['zipfile'];
     //所有文件
     if ($dirs) {
         foreach ($dirs as $dir) {
             $z->add_dir($dir);
             //添加指定目录
             msg($dir . "...添加目录成功!<br>");
             //read_dir($dir);
         }
     }
     if ($files) {
         foreach ($files as $file) {
             $fp = @fopen($file, rb);
             $zipfilecontent = array($file, @fread($fp, $filesize));
             @fclose($fp);
             $z->Add($zipfilecontent, 1);
             //可以多次执行 $zip->Add 来添加多个文件
             msg($file . "...添加文件成功!<br>");
         }
     }
     closedir($path);
     if (@fputs(@fopen($filename, "wb"), $z->get_file())) {
         //写入文件
         msg("文件压缩成功!!");
     } else {
         msg("文件压缩失败!!", 0);
     }
     echo "<a href='{$filename}' traget='_blank'>下载本文件:{$filename}</a>";
 }
Example #3
0
function zipdir($zippath)
{
    $filepath = $zippath;
    $dh = opendir($zippath);
    while (false !== ($file = readdir($dh))) {
        if ($file != "." && $file != "..") {
            if (is_dir($filepath . "/" . $file)) {
                $dirpath = $filepath . '/' . $file;
                $_SESSION['zipdir'][] = $dirpath;
                if (!filterzipdir($dirpath)) {
                    zipdir($dirpath);
                }
            } else {
                $_SESSION['zipfile'][] = $filepath . '/' . $file;
            }
        }
    }
    closedir($dh);
}
Example #4
0
 $dir = processDirectory($dir);
 if (isset($_POST['submit'])) {
     echo '<div class="notice_failure">';
     if (empty($_POST['name']) || empty($_POST['path'])) {
         echo 'Chưa nhập đầy đủ thông tin';
     } else {
         if (isset($_POST['is_delete']) && processDirectory($_POST['path']) == $dir . '/' . $name) {
             echo 'Nếu chọn xóa thư mục bạn không thể lưu tập tin nén ở đó';
         } else {
             if (isPathNotPermission(processDirectory($_POST['path']))) {
                 echo 'Bạn không thể nén tập tin zip tới đường dẫn của File Manager';
             } else {
                 if (isNameError($_POST['name'])) {
                     echo 'Tên tập tin zip không hợp lệ';
                 } else {
                     if (!zipdir($dir . '/' . $name, processDirectory($_POST['path'] . '/' . processName($_POST['name'])), isset($_POST['is_delete']) == 1)) {
                         echo 'Nén zip thư mục thất bại';
                     } else {
                         goURL('index.php?dir=' . $dirEncode . $pages['paramater_1']);
                     }
                 }
             }
         }
     }
     echo '</div>';
 }
 echo '<div class="list">
         <span class="bull">&bull;</span><span>' . printPath($dir . '/' . $name, true) . '</span><hr/>
         <form action="folder_zip.php?dir=' . $dirEncode . '&name=' . $name . $pages['paramater_1'] . '" method="post">
             <span class="bull">&bull;</span>Tên tập tin nén:<br/>
             <input type="text" name="name" value="' . (isset($_POST['name']) ? $_POST['name'] : $name . '.zip') . '" size="18"/><br/>