كيف يمكنني تعيين أذونات الملفات التي استخرجتها مع EzCarchive - Ezcomponents

StackOverflow https://stackoverflow.com/questions/3821662

  •  26-09-2019
  •  | 
  •  

سؤال

أنا أستخدم مكون أرشيف 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();

}

يعتبر

هل كانت مفيدة؟

المحلول

قم بعمل 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;
}
?>

نصائح أخرى

يمكنك استخدام رد الاتصال لكل ملف/دليل مستخرج ، من أجل تعيين الأذونات المطلوبة. يمكنك تحديد رد الاتصال من خلال ezcArchiveOptions.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top