因此,我正在尝试为我正在为 friend 构建的网站显示数据库中的图像。他希望能够上传图片,并将其显示在首页上。
我的图片正在上传,一切正常。将其作为 BLOB 保存在数据库中。
我开始致力于在单独的文件中显示图像。我让它在我的测试网站上运行,图像显示了他想要的方式。但后来我将代码移到了实际的网站上,按照需要的方式进行设置,但它没有用。
我最终在我的测试网站上再次尝试,一切正常。
对于某些人来说,它在实际网站上不起作用,但在我的测试网站上运行良好。
实际网站比我的测试网站获取更多信息。
这是我在测试网站上使用的代码。
图片.php
$query = mysql_query("SELECT * FROM images LIMIT 1");
while($row = mysql_fetch_assoc($query)){
$image_id = $row['id'];
echo "<img src=showimage.php?id=".$image_id.">";
}
下面是我如何从数据库中抓取图像并显示它。
显示图片.php
include 'inc/db.php';
$id = addslashes($_REQUEST['id']);
$image = mysql_query("SELECT image FROM sites WHERE id = '$id'");
$image = mysql_fetch_assoc($image);
$image = $image['image'];
header("Content-type: image/png");
echo $image;
在测试网站上使用该代码工作正常,那里没有问题。
这是我的实际网站代码。
网站.php
$select = mysql_query("SELECT * FROM sites");
while($row = mysql_fetch_assoc($select)){
$image_id = $row['id'];
echo '
<tr class="bottom"><td>'.$row['host'].'</td>
<td>'.$row['currency'].''.$row['price'].' every '.$row['payment'].'</td>
<td>'.$row['domain'].'</td>
<td>'.$row['paid_currency'].''.$row['paid_domain'].'</td>
<td>'.$row['features'].'</td>
<td>
<span title="Edit '.$row['id'].'"><a href="edit.php?id='.$row['id'].'"><img src="images/edit.png" alt="Edit"></a></span>
<span title="Delete '.$row['id'].'"><a href="inc/delete.php?id='.$row['id'].'"><img src="images/delete.png" alt="Delete"></a></span>
</td>
<td><img src=showimage.php?id='.$image_id.'></td></tr>
';
}
使用 showimage.php 文件从数据库中抓取图像,但根本不起作用。
最佳答案
如果您打算使用数据库,请考虑使用 imagecreatefrompng()功能,具体取决于 img 是如何放入数据库的。
此外,尝试执行 $id = (int)$_GET['id'];
而不是 addslashes()然后检查是否 $id > 0
.最后,+1 关于将图像存储在文件系统上而不是作为 BLOB。
[并在此处插入 mysql_query-is-deprecated-use-the-PDO-extension 讲座]
关于PHP 显示数据库中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17771822/