Example #1
0
 public function unzipTmp($id, $relative = false)
 {
     $zipPath = realpath(WWW_ROOT . AssetFile::url($id));
     $base_folder = WWW_ROOT . "files/tmpgal/" . DS;
     // setup dir names absolute and relative
     $folder = explode(".", $zipPath);
     $type = array_pop($folder);
     $folder = time();
     $folder_url = $base_folder . DS . $folder;
     //make sure our folders are there
     if (!is_dir($base_folder)) {
         mkdir($base_folder);
     }
     if (!is_dir($folder_url)) {
         mkdir($folder_url);
     }
     $zip = zip_open($zipPath);
     if (!is_resource($zip)) {
         die($this->zipFileErrMsg($zip));
     }
     $files = array();
     $found_image = false;
     $c = 0;
     while ($zip_entry = zip_read($zip)) {
         $name = explode('/', zip_entry_name($zip_entry));
         $name = array_pop($name);
         $type = array_pop(explode('.', $name));
         if (in_array($type, array('png', 'gif', 'jpg', 'jpeg'))) {
             if (is_resource($zip_entry) && $name != "" && substr($name, 0, 2) != "._") {
                 $file = $folder_url . DS . $c . '.' . $type;
                 file_put_contents($file, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
                 if ($relative) {
                     $files[] = str_replace('///', '/', array_pop(explode('webroot', $file)));
                 } else {
                     $files[] = 'http://' . $_SERVER['HTTP_HOST'] . DS . str_replace('//', '/', array_pop(explode('webroot', $file)));
                 }
             }
         }
         $c++;
     }
     zip_close($zip);
     return $files;
 }