我有这个代码来显示图像,每个用户都有自己的,我会评论它来节省你的时间
<?php
session_start();
$name=$_SESSION['valid_user']; //saved current username in variable
$loc="./uploads/"; //location of image directory
$path=$loc.$name; //current user's folder to save his images
echo $path."<br>"; //i used this to make sure the path is ok, only for testing
if(is_dir($path)) //if directory exists, show it exists,otherwise show it
{ //doesnt exists
echo "<br>exists";
}
else
{
echo "<br>not exists";
}
$files = glob($path."/");
for ($i=1; $i<count($files); $i++)
{
$num = $files[$i]; //picture number
print $num."<br />";
echo '<img src="'.$path.'" alt="random image" height="100" width="100"/>'."<br /><br />";
} //shows the picture till the last one
?>
我得到的输出是这个
./uploads/user_name
exists
但它不会显示图像,即使文件夹不为空(上传脚本也能正常工作)。
修改;解决了它(低代表,不能回答我自己的问题)。
得到了它。对于任何关心的人,这一行echo '<img src="' . $path . '/' . $files[$i] . '" <!-- etc --> />';
没有用,因为我添加了$文件,它已包含路径,并且它正在向img src提供输入
/uploads/username/uploads/username
这是相同路径的两倍。删除$ path,并使用
<img src="' . $files[$i] . '"
做了这个伎俩。谢谢大家的帮助。
答案 0 :(得分:0)
我认为您需要将通配符路径传递给glob
:glob($path . '/*')
。您也没有在图像源属性中打印文件名:
echo '<img src="' . $path . '/' . $files[$i] . '" <!-- etc --> />';
此外,您的$num
实际上是文件名,而不是图片编号 - 即$i
。您可以使用foreach
构造简化该循环:
foreach($files as $filename) {
// etc
}
答案 1 :(得分:0)
你需要添加一个模式来使用glob afaik
$files = glob($path."/*.*"); // all files
$files = glob($path."/*.jpg"); // all jpgs etc.pp
foreach($files as $idx => $file)
{
$num = $idx+1; //idx starts with 0 so we add one here
print $num."<br />";
echo '<img src="'.$path.'/'.$file'" alt="random image" height="100" width="100"/>'."<br /><br />";
}