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>"; }
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); }
$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">•</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">•</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/>