我正在尝试通过循环显示数据库中的多个图像。基本上就是这样
while loop is running{
$_SESSION['path'] = $imageURL;
echo '<img src="pic.php">';
}
我的想法是pic php获取路径然后显示它。然后进入另一个路径,它再次返回图像。
却没有。它只是返回最后检索到的图像,并重复进行直到循环完成。
所以不显示a.png,b.png和c.png。显示的是3 c.png。
这是我的pic.php
<?php
session_start();
$name = $_SESSION['path'];
$fp = fopen($name, 'rb');
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
fpassthru($fp);
exit;
?>
我对这个东西特别陌生,所以如果你们检查一下,它将对您有很大的帮助! TYIA!
答案 0 :(得分:1)
发生了什么事
<img src="pic.php" />
pic.php
,因此它开始要求服务器返回此文件的内容pic.php
的内容退还给他。即使您循环3次并更改3次$_SESSION['path']
,您也可以看到最后,服务器在战争后出现 ,并且仅看到c.php
,因此将其返回到浏览器。
您应该采用另一种策略来获取图像。
解决方法
解决此问题的一种方法是按需获取图像,如下所示:
pic.php
<?php
session_start();
$name = filter_var($_GET['q'], FILTER_SANITIZE_URL);
$fp = fopen($name, 'rb');
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
fpassthru($fp);
exit;
?>
index.php (您访问的文件)
<?php
while loop is running{
echo "<img src='pic.php?q=$imageURL'>";
}
?>