Пример #1
0
 /**
  * 图标上传
  */
 public function do_upload_icon()
 {
     require_once APP_ROOT_PATH . "system/utils/zip.php";
     $archive = new PHPZip();
     $font_dir = APP_ROOT_PATH . "public/iconfont";
     $result = $archive->unZip($_FILES['file']['tmp_name'], $font_dir);
     if (empty($result) || $result == -1) {
         ajax_return(array("status" => false, "info" => "图标库更新失败,请手动解压后上传文件到" . $font_dir));
     }
     if ($dir = opendir($font_dir . "/")) {
         while ($file = readdir($dir)) {
             $check = is_dir($font_dir . "/" . $file);
             if (!$check) {
                 @unlink($font_dir . "/" . $file);
             }
         }
     }
     $result = $archive->unZip($_FILES['file']['tmp_name'], $font_dir);
     //清空原文件
     foreach ($result as $k => $v) {
         $file = APP_ROOT_PATH . "public/iconfont/" . $k;
         $file_arr = explode("/", $file);
         foreach ($file_arr as $f) {
             if ($f == "iconfont.css" || $f == "iconfont.eot" || $f == "iconfont.svg" || $f == "iconfont.ttf" || $f == "iconfont.woff") {
                 //echo APP_ROOT_PATH."public/iconfont/".$f;
                 @rename($file, APP_ROOT_PATH . "public/iconfont/" . $f);
             }
         }
     }
     foreach ($result as $k => $v) {
         $file = APP_ROOT_PATH . "public/iconfont/" . $k;
         @unlink($file);
     }
     foreach ($result as $k => $v) {
         $file = APP_ROOT_PATH . "public/iconfont/" . $k;
         @rmdir($file);
     }
     ajax_return(array("status" => true, "info" => ""));
 }
Пример #2
0
 /**
  * @Title: UnZip 
  * @Description: todo(解压文件) 
  * @param 解压的文件路径 $UnzipUrl
  * @param 解压后文件的路径 $UnzipPath  
  * @author laicaixia 
  * @date 2013-6-2 上午10:36:51 
  * @throws 
  */
 private function UnZip($UnzipUrl, $UnzipPath)
 {
     import("@.ORG.PHPZip");
     $archive = new PHPZip();
     $zipfile = $UnzipUrl;
     $savepath = $UnzipPath;
     //$zipfile   = $unzipfile;
     //$savepath  = $unziptarget;
     $array = $archive->GetZipInnerFilesInfo($zipfile);
     $filecount = 0;
     $dircount = 0;
     $failfiles = array();
     set_time_limit(C('PAGE_LIFE_TIME'));
     //修改为不限制超时时间(默认为30秒)
     for ($i = 0; $i < count($array); $i++) {
         if ($array[$i][folder] == 0) {
             if ($archive->unZip($zipfile, $savepath, $i) > 0) {
                 $filecount++;
             } else {
                 $failfiles[] = $array[$i][filename];
             }
         } else {
             $dircount++;
         }
     }
     printf("文件夹:%d&nbsp;&nbsp;&nbsp;&nbsp;解压文件:%d&nbsp;&nbsp;&nbsp;&nbsp;失败:%d<br>\r\n", $dircount, $filecount, count($failfiles));
     if (count($failfiles) > 0) {
         foreach ($failfiles as $file) {
             printf("&middot;%s<br>\r\n", $file);
         }
     }
 }