【发布时间】:2016-05-09 17:49:02
【问题描述】:
我有以下问题:我正在开发一个仅包含一个 index.php 文件的文件管理器,该文件管理器从其所在的实际文件夹中获取所有文件和文件夹。
所以,如果我有一个包含文件管理器文件的文件夹:
Folder01
-folder-A
-folder-B
-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;
}
这个sn-p是它的php代码的开头,负责获取所选文件夹的文件。
知道如何改变它吗?
【问题讨论】:
-
“问题是当我尝试更改文件夹时” - 什么问题?真正的问题是什么?
-
对不起!忘记了最重要的部分,问题是我无法更改文件夹来获取它的内容。我想从名为“Uploads”的文件夹中获取内容。
标签: php fetch file-manager