我已经尝试了所有我看了这里的解决方案,但似乎无法得到这个工作。
我想打电话给SCANDIR在这个文件:https://www.example.com/cms/uploader/index.php
列出所有的文件和目录此文件夹中:https://www.example.com/uploads/
我不想硬编码example.com的部分,因为这将取决于在网站上是不同的。我试过的多种组合:目录名(文件),DIR,$ _ SERVER [“SERVER_NAME”]和$ _ SERVER [“REQUEST_URI”],等我要么得到一个“无法打开目录,在没有实现...... “错误或没有显示在所有。下面是我使用的代码:
$directory = __DIR__ . '/../../uploads';
$filelist = "";
$dircont = scandir($directory);
foreach($dircont AS $item)
if(is_file($item) && $item[0]!='.')
$filelist .= '<a href="'.$item.'">'.$item.'</a>'."<br />\n";
echo $filelist;
什么是这样做的正确方法?
在$目录变量设置错误。如果你想要去的2节目录了使用目录名()是这样的:
$directory = dirname(__DIR__,2) . '/uploads';
$filelist = "";
$dircont = scandir($directory);
foreach($dircont AS $item) {
if(is_file($item) && $item[0]!='.')
$filelist .= '<a href="'.$item.'">'.$item.'</a>'."<br />\n";
}
echo $filelist;
你可以阅读更多关于scandir有上如果allow_url_fopen已被激活如何使用URL使用一节,但是这主要是在本地/开发环境。
对不起,我不能够写评论问你一个问题(低信誉)。
至于我从你的解释明白,你想可能添加的文件夹名称,让您在某种程度上探头将自动工作。
如果是的话,那我就做了这样一件这样的代码;
$website = 'http://localhost/';
$folders = array('uploads','files', 'uploads/files');
$filelist = "";
foreach ($folders as $kinky)
$dircont = scandir($website.$kinky);
foreach ($dircont AS $item)
if (is_file($item) && $item[0] != '.')
$filelist .= '<a href="' . $item . '">' . $item . '</a>' . "<br />\n";
echo $filelist;
希望能帮助到你 :)