2010-09-29 11 views
0

J'utilise le composant d'archive ezcomponents pour extraire les fichiers téléchargés sur mon site Web. La partie extraction est très facile mais comment assigner spécifiquement les bonnes permissions à ces fichiers extraits?Comment définir les autorisations des fichiers extraits avec ezcArchive - 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(); 

} 

Cordialement

Répondre

0

Faites un chmod récursif sur le répertoire. (A utiliser si vous ne trouvez pas une fonctionnalité intégrée dans 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; 
} 
?> 
+0

Merci qui a beaucoup aidé: D –

1

Vous pouvez utiliser un rappel pour chaque fichier extrait/répertoire, afin de définir les autorisations souhaitées. Vous spécifiez le rappel via le ezcArchiveOptions.