使用浏览器显示文件夹中的文件列表


show file list in folder from using browser

通常,如果没有启用htacces限制,则可以使用浏览器查看web服务器中托管文件夹下的文件列表。除非存在像index.php这样的索引文件,它会自动转到索引页面。(据我所知)

但是,即使存在索引文件,也可以看到文件列表吗?

提前感谢

不,没有。我所知道的所有web服务器只有在没有可用索引页的情况下才会显示目录列表(即使这样,也只有在目录列表未被禁用的情况下)。

用PHP构建一个文件列表,并将其显示在索引文件中。

请访问http://php.net/manual/en/function.readdir.php。我将其用于客户端,以便通过index.php文件在目录中显示某些文件类型。

<?php
if ($handle = opendir('/path/to/files')) {
    echo "Directory handle: $handle'n";
    echo "Entries:'n";
    while (false !== ($entry = readdir($handle))) {
        echo "$entry'n";
    }
    closedir($handle);
}
?>

将其放在web根目录sindex.php 中

<?php
$pngFolder = <<< EOFILE
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAABhlBMVEX//v7//v3///7//fr//fj+/v3//fb+/fT+/Pf//PX+/Pb+/PP+/PL+/PH+/PD+++/+++7++u/9+vL9+vH79+r79+n79uj89tj89Nf889D88sj78sz78sr58N3u7u7u7ev777j67bL67Kv46sHt6uP26cns6d356aP56aD56Jv45pT45pP45ZD45I324av344r344T14J734oT34YD13pD24Hv03af13pP233X025303JL23nX23nHz2pX23Gvn2a7122fz2I3122T12mLz14Xv1JPy1YD12Vz02Fvy1H7v04T011Py03j011b01k7v0n/x0nHz1Ejv0Hnuz3Xx0Gvz00buzofz00Pxz2juz3Hy0TrmznzmzoHy0Djqy2vtymnxzS3xzi/kyG3jyG7wyyXkwJjpwHLiw2Liw2HhwmDdvlXevVPduVThsX7btDrbsj/gq3DbsDzbrT7brDvaqzjapjrbpTraojnboTrbmzrbmjrbl0Tbljrakz3ajzzZjTfZijLZiTJdVmhqAAAAgnRSTlP///////////////////////////////////////8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9XzUpQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAACqSURBVBiVY5BDAwxECGRlpgNBtpoKCMjLM8jnsYKASFJycnJ0tD1QRT6HromhHj8YMOcABYqEzc3d4uO9vIKCIkULgQIlYq5haao8YMBUDBQoZWIBAnFtAwsHD4kyoEA5l5SCkqa+qZ27X7hkBVCgUkhRXcvI2sk3MCpRugooUCOooWNs4+wdGpuQIlMDFKiWNbO0dXTx9AwICVGuBQqkFtQ1wEB9LhGeAwDSdzMEmZfC0wAAAABJRU5ErkJggg==
EOFILE;
if (isset($_GET['img']))
{
       header("Content-type: image/png");
        echo base64_decode($pngFolder);
        exit();
}

$projectsListIgnore = array ('.','..'); 
$handle=opendir(".");
$projectContents = '';
while ($file = readdir($handle)) 
{
    if (is_dir($file) && !in_array($file,$projectsListIgnore)) 
    {       
        $projectContents .= '<li><a href="'.$file.'">'.$file.'</a></li>';
    }
}
closedir($handle);
?>
<ul class="projects">
<?php $projectContents ?>
</ul>