У меня следующая проблема: я работаю над файловым менеджером, состоящим только из одного файла index.php, который выбирает все файлы и папки из фактической папки, в которой он находится.
Так что, если у меня есть папка с файлом filemanager:
Folder01
-folder-А
-folder-Б
-file1.php
-image.png
-index.php
Диспетчер файлов покажет: папка-A, папка-B, file1.php и image.png
Проблема в том, что я не могу изменить папку для извлечения ее содержимого, чтобы иметь возможность по умолчанию просматривать содержимое папки-A, например.
$file = isset($_REQUEST['file']) ? urldecode($_REQUEST['file']) : '.';
if(isset($_GET['do']) && $_GET['do'] == 'list') {
if (is_dir($file)) {
$directory = $file;
$result = array();
$files = array_diff(scandir($directory), array('.','..'));
foreach($files as $entry) if($entry !== basename(__FILE__)) {
$i = $directory . '/' . $entry;
$stat = stat($i);
$result[] = array(
'mtime' => $stat['mtime'],
'size' => $stat['size'],
'name' => basename($i),
'path' => preg_replace('@^\./@', '', $i),
'ext' => pathinfo($i, PATHINFO_EXTENSION),
'is_dir' => is_dir($i),
'is_deleteable' => (!is_dir($i) && is_writable($directory)) ||
(is_dir($i) && is_writable($directory) && is_recursively_deleteable($i)),
'is_readable' => is_readable($i),
'is_writable' => is_writable($i),
'is_executable' => is_executable($i),
);
}
} else {
err(412,"Not a Directory");
}
echo json_encode(array('success' => true, 'is_writable' => is_writable($file), 'results' =>$result));
exit;
}
Этот фрагмент является началом его php-кода, который отвечает за выборку файлов выбранной папки.
Есть идеи о том, как это изменить?
Заранее спасибо!
Задача ещё не решена.
Других решений пока нет …