<?php>
namespace app\admin\controller;
class Uzip
{
/**
*header('Content-type:text/html;charset=utf-8');
*@param $filename 解压文件
*@param $dir 解压到路径
*@param $overwrite 是否覆盖文件 true false
*/
public function uzip($filename, $dir ,$overwrite=true)
{
if(!is_dir($dir)) {
//mkdir($dir, 0777, true);//创建目录保存解压内容
$this--->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'=>0,'msg'=>'文件夹内已存在文件']);
}
}else {
//echo $file_name . '</pre>;
$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;
}
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);
}
}
}
}
}
PHP解压zip,zip_open,zip_read,zip_entry_open使用方法
网站声明:
1.本站使用TaoLerCMS驱动,安全迅速,简单好用,深度SEO。
2.本站用户所发布内容均为用户个人行为,若有侵权请提供原内容出处,联系本站管理员删除。
3.站点原创内容转载及引用,请联系本站并引用原文链接地址,否则一切后果自行承担。
点赞 0
# 上一篇: 辞旧迎新 ,回顾2019,展望2020!
# 下一篇: 疫情地图,实时查询周边疫情
还没有内容