create_dirs($dir); } if(file_exists($filename)) { $resource = zip_open($filename); while($zip = zip_read($resource)) { if(zip_entry_open($resource, $zip)) { //获得文件名,mac压缩成zip,解压需要过滤资源库隐藏文件 $file_content = zip_entry_name($zip); // 如果文件不在根目录中 $pos_last_slash = strrpos($file_content, "/"); $file_name = substr($file_content, $pos_last_slash+1); if(empty($file_name)){ $pt = $this->create_dirs($dir.$file_content); } if($file_name) { $save_path = $dir.$file_content; if(file_exists($save_path)) { if($overwrite === true){ echo $file_name . '
';	
								$file_size = zip_entry_filesize($zip);
								$file = zip_entry_read($zip, $file_size);
								$fpc = file_put_contents($save_path, $file);
								//zip_entry_close($zip);	
							}else{
								//echo '文件夹内已存在文件 "' . $file_name . '" 
';
								return json(['code'=>-1,'msg'=>'文件夹内已存在文件']);
							}
							
						}else {
							//echo $file_name . '
';	
							$file_size = zip_entry_filesize($zip);
							$file = zip_entry_read($zip, $file_size);
							$fpc = file_put_contents($save_path, $file);
							//zip_entry_close($zip);
						}
					
					}
				zip_entry_close($zip);	
				}
			}
			zip_close($resource);
			
		}else{
			return false;
		}
		return true;
	}

    /**
     * 创建文件夹及子文件夹
     * @param $path
     * @return bool
     */
	public function create_dirs($path)
	{
	  if (!is_dir($path))
	  {
		$directory_path = "";
		$directories = explode("/",$path);
		array_pop($directories);
	   
		foreach($directories as $directory)
		{
		  $directory_path .= $directory."/";
		  if (!is_dir($directory_path))
		  {
			mkdir($directory_path);
			chmod($directory_path, 0777);
		  }
		}
	  }
	}
}