Пример #1
0
 function zip()
 {
     global $dir;
     if (!MRights::can("zip")) {
         $this->view->authError("zip");
         return;
     }
     $zipName = MRequest::clean("zipname", null);
     $zipName = stripEnd(".zip", $zipName);
     $zipName = stripEnd(".ZIP", $zipName);
     if ($zipName) {
         $zipName .= ".zip";
     } else {
         $zipName = "archive_" . date("Y-m-d-H-i") . ".zip";
     }
     $archive = new PclZip(_FM_TMP_DIR . DS . $zipName);
     $selectedFiles = $_REQUEST["selectedFiles"];
     $error = null;
     $status = $archive->add($dir, PCLZIP_OPT_REMOVE_PATH, $dir);
     if (file_exists($dir . DS . $zipName)) {
         $error = MText::_("archive_exists");
         MFile::remove(_FM_TMP_DIR . DS . $zipName);
     } else {
         MFile::move(_FM_TMP_DIR . DS . $zipName, $dir);
     }
     foreach ($status as $item) {
         if ($item['status'] != "ok" && $item['status'] != "filtered") {
             $error .= ' - <b>' . $item['stored_filename'] . ":</b> " . MText::_($item['status']) . '<br>';
         }
     }
     if ($error) {
         $this->view->add2Content("_fmError" . $error);
     } else {
         $this->view->add2Content("ok");
     }
 }
Пример #2
0
 function zip()
 {
     global $dir;
     if (!MRights::can("zip")) {
         $this->popupError("zip");
         return;
     }
     $zipName = MRequest::clean("zipname", null);
     $zipName = stripEnd(".zip", $zipName);
     $zipName = stripEnd(".ZIP", $zipName);
     if ($zipName) {
         $zipName .= ".zip";
     } else {
         $zipName = "archive_" . date("Y-m-d-H-i") . ".zip";
     }
     $archive = new PclZip($dir . DS . $zipName);
     $selectedFiles = $_REQUEST["selectedFiles"];
     $error = null;
     foreach ($selectedFiles as $selectedFile) {
         $selectedFile = _START_FOLDER . urldecode($selectedFile);
         $selectedFile = MValidate::path($selectedFile);
         $info = MFile::info($selectedFile);
         $archive->add($selectedFile, PCLZIP_OPT_REMOVE_PATH, $dir);
     }
     if ($error) {
         $this->view->add2Content('<script noCache="1">newDarkenPopup(\'error\',mText.error,\'' . $error . '\',500,250);</script>');
     }
     $this->view->add2Content(fmGetFiles());
 }