解压文件zip

/**
     * @param $filename 文件所在的位置和全名
     * @param $dir  解压后的文件所存放的目录
     * @return mixed 返回解压后的文件所在路径和名称
     */
    public function unzipfile($filename,$dir)
    {
        header('Content-type:text/html;charset=utf-8');
        if (!is_dir($dir)) {
            mkdir($dir, 0777, true);//创建目录保存解压内容

        }
        $save_path = "";
        if(file_exists($filename)){
            $resource = zip_open($filename);
            while($zip = zip_read($resource)){
                if(zip_entry_open($resource, $zip)){
                    $file_content = zip_entry_name($zip);//获得文件名,mac压缩成zip,解压需要过滤资源库隐藏文件
                    $file_name = uniqid().substr($file_content, strrpos($file_content, '/') + 1);//查找 "/" 在字符串$file_content中最后一次出现的位置:
                    if(!is_dir($file_name) && $file_name){
                        $save_path = $dir . '/' . $file_name;
                        if(file_exists($save_path)){
                            echo '文件夹内已存在文件 "' . $file_name . '" <pre />';
                        }else {
                            //echo $file_name . '<pre />';
                            $file_size = zip_entry_filesize($zip);
                            $file = zip_entry_read($zip, $file_size);
                            file_put_contents($save_path, $file);
                            zip_entry_close($zip);
                        }

                    }
                }
            }
            zip_close($resource);
        }
        return $save_path;
    }

猜你喜欢

转载自blog.csdn.net/kevlin_V/article/details/86290052