كيف يمكنني تعيين أذونات الملفات التي استخرجتها مع EzCarchive - Ezcomponents
-
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
.
لا تنتمي إلى StackOverflow