好的,一直在寻找互联网甚至Stackoverflow,但我似乎无法使用以下PHP代码。
<div class="grid">
<ul class="images">
<?php
//path to directory to open
$directory = "/Media/pics/";
$dir_handle = @opendir($directory) or die("Unable to open folder");
while(false !== ($file = readdir($dir_handle)))
{
if($file != '.' && $file != '..' && $file != 'Thumbs.db')
{
echo "<li class='picture' title='Remote2'> <img src='/Media/pics/".$file."'alt='test'/></li>";
}
}
closedir($dir_handle);
?>
每次我尝试查看页面时,都会得到:
403 Forbidden - 您无权访问此服务器上的 intranet / Media / pics /".$文件。“。
然而,我能够导航到“intanet / Media / pics”并查看并单击文件夹中的所有图像。 我不认为这是一个权限问题,但也许我在PHP代码中缺少一些东西。让我希望我有一个非常好的PHP编辑器,语法高亮和自动完成(目前使用Aptana Studio 3)。
感谢您的帮助!
解决方案:必须执行以下操作: 1)将“pictures.html”更改为“pictures.php”(newb错误)
2)修复从“/ media / pics”到“media / pics”的真实路径
答案 0 :(得分:2)
您使用的是绝对路径,例如/Media/pics/somepic.jpg
。您的文件系统根目录中是否有/Media
目录?同样,/ Media文件夹是您网站文档根目录的一部分吗?请记住,PHP的文件操作在文件系统级别工作,而不是在Web服务器的URL级别。 PHP可以访问完全在您网站范围之外的文件,因此直接输出文件系统作为src
的URL可以很容易地指向远程用户无法访问的文件。
答案 1 :(得分:0)
Unix系统通常默认限制文件读取权限。如果您知道如何CHMOD,请确保PHP有权读取该目录。 (如果Apache是他们的拥有者,640就足够了。如果没有,你可以尝试更高,但阅读时你不应该高于700或750.)
答案 2 :(得分:0)
尝试更改此行:
echo "<li class='picture' title='Remote2'> <img src='/Media/pics/".$file."'alt='test'/></li>";
到
echo "<li class='picture' title='Remote2'> <img src='/Media/pics/$file' alt='test'/></li>";
如果将变量名称视为字符串,则您的错误有点奇怪。双引号将使用$ file的值,因此如果它不起作用,至少应该给我们一个不同的错误。
编辑:我也怀疑路径可能会丢失,因为已经提到过。将您的路径与错误中提到的路径进行比较,看看您是否正确地完成了整个过程。例如,它应该是/ home / site / Media / pics(作为示例)
答案 3 :(得分:0)
查看@Marc B答案的评论。
文件中的PHP脚本似乎没有被执行。您是否正确命名了文件?
为了运行PHP screpts,您需要为该文件提供“.php”扩展名。我怀疑你可能会把它命名为“.html”?
或者是否没有正确设置Apache上的配置以运行PHP之后的“.php”文件?