我有一个在文档根目录内执行的索引脚本:
/var/www/mywebsite/protected-folder/index.php
现在我在文档根目录之外有一个目录,其中包含一个包含文件的子目录列表:
/var/www/uploads/LIST OF SUBDIRECTORIES/file
当上传文件夹位于文档根目录中时,我使用了以下代码:
<?php
$dir = "/var/www/uploads";
$list = scandir($dir); /* This function sorts dirs */
$list = array_diff($list,array(".","..","index.php"));
echo "<ol>";
foreach ($list as $file)
{
if (!is_dir($file)) echo "<li><a href='https://mysite.ca/protected-folder/uploads/$file'>$file</a></li>\n";
}
echo "</ol>";
?>
但是,除非登录并有权访问此脚本,否则此文件夹需要对公共私有。
如何创建指向文档根目录之外的文件夹的链接,如果单击该链接,则显示该目录中的文件?
编辑:为了让我的问题更清楚,上传文件夹将有两层子目录,这些子目录将是一个未知数:/var/www/uploads/UNKNOWN LIST OF SUBDIRECTORY LEVEL 1/UNKNOWN SUBDIRECTORIES LEVEL 2/ALL FILES (file can be any file type)
以前这样做的方法是使用 apache 索引来允许用户横向浏览子目录。这需要安全以防止直接 url 访问,所以这就是我希望它的工作方式:
列出所有第一个子目录链接(链接到所有子目录级别 1)
然后,一旦单击链接,列出子目录级别 1 中的所有子目录级别 2 文件夹
最后,如果单击该链接(子目录 2),则显示子目录 2 中的所有文件
希望这能说明问题