代码之家  ›  专栏  ›  技术社区  ›  Etienne Marais

如何设置使用ezcArchive-ezComponents提取的文件的权限

  •  0
  • Etienne Marais  · 技术社区  · 14 年前

    我正在使用ezcomponents归档组件提取上载到我的网站的文件。提取部分非常简单,但是我如何明确地为正在提取的文件分配正确的权限?

    http://ezcomponents.org/docs/tutorials/Archive#usage

    $extract_dir = 'some existing directory';
    $archive = ezcArchive::open($file, ezcArchive::ZIP);
    
    while( $archive->valid() )
    {
        if ( is_dir($extract_dir) === false )
        {
            @mkdir($extract_dir, 0777);
        }
    
        // Extract the current archive entry to /data/<issue_id>/
        $archive->extractCurrent($extract_dir);
    
        $archive->next();
    
    }
    

    2 回复  |  直到 14 年前
        1
  •  0
  •   Stewie    14 年前

    对目录执行递归chmod。(如果在ezcomponents中找不到内置功能,请使用此选项)

    <?php
    function chmodr($path, $filemode) {
        if (!is_dir($path))
            return chmod($path, $filemode);
    
        $dh = opendir($path);
        while (($file = readdir($dh)) !== false) {
            if($file != '.' && $file != '..') {
                $fullpath = $path.'/'.$file;
                if(is_link($fullpath))
                    return FALSE;
                elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode))
                        return FALSE;
                elseif(!chmodr($fullpath, $filemode))
                    return FALSE;
            }
        }
    
        closedir($dh);
    
        if(chmod($path, $filemode))
            return TRUE;
        else
            return FALSE;
    }
    ?>
    
        2
  •  1
  •   tobyS    13 年前

    您可以对每个提取的文件/目录使用回调,以便设置所需的权限。您可以通过 ezcArchiveOptions .

    推荐文章