用权限监听PHP目录

时间:2016-09-12 21:19:33

标签: php file permissions directory apache2

我有一个基于Linux ubuntu服务器14.04 LTS(32位)的网页(apache2)。

根据我的说法,我成功找到了一个简单的PHP目录/文件监听器。

我的问题是:我不知道如何显示具有 0700 权限的目录/文件。我也想打开文件。我不想更改权限,因为在我的网页上,用户必须登录才能使用该网站。我的意思是 0700 权限的文件不公开,我希望只有网站的成员才能使用/下载文件。

我的code是:

<?php
    $dirlist = getFileList("./uf/");
?>
<table border="1">
<thead>
<tr><th>Name</th><th>Type</th><th>Size</th><th>Last Modified</th></tr>
</thead>
<tbody>
<?PHP
        // output file list as table rows
        foreach($dirlist as $file) {
        echo "<tr>\n";
        echo "<td><a href=\"{$file['name']}\">",basename($file['name']),"</a></td>\n";
        echo "<td>{$file['type']}</td>\n";
        echo "<td>{$file['size']}</td>\n";
        echo "<td>",date('r', $file['lastmod']),"</td>\n";
        echo "</tr>\n";
    }
?>
</tbody>
</table>
<?php
    function getFileList($dir, $recurse=false)
    {
        $retval = array();

        // add trailing slash if missing
        if(substr($dir, -1) != "/") $dir .= "/";

        // open pointer to directory and read list of files
        $d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");
        while(false !== ($entry = $d->read())) {
            // skip hidden files
            if($entry[0] == ".") continue;
            if(is_dir("$dir$entry")) {
                $retval[] = array(
                "name" => "$dir$entry/",
                "type" => filetype("$dir$entry"),
                "size" => 0,
                "lastmod" => filemtime("$dir$entry")
                );
                if($recurse && is_readable("$dir$entry/")) {
                    $retval = array_merge($retval, getFileList("$dir$entry/", true));
                }
            } elseif(is_readable("$dir$entry")) {
                $retval[] = array(
                "name" => "$dir$entry",
                "type" => mime_content_type("$dir$entry"),
                "size" => filesize("$dir$entry"),
                "lastmod" => filemtime("$dir$entry")
            );
            }
        }
        $d->close();

        return $retval;
    }
?>

我希望你能理解我在说什么。

0 个答案:

没有答案