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; }