gpt4 book ai didi

PHP - 存储为 BLOB 的图像显示为断开的链接

转载 作者:行者123 更新时间:2023-11-29 03:26:23 24 4
gpt4 key购买 nike

我正在使用 PHP 开发商店应用程序,但在显示存储在 MySQL 数据库中时遇到问题。我将图像存储为中型 BLOB 类型,并且我确信图像在上传到数据库期间和之后的格式正确。 (我可以直接从数据库下载图片并以jpeg图片查看)。

但是如果我尝试在网页中显示我的图像,我会看到损坏的图像图标。我能够从 sql 中显示图片的唯一方法是使用 base64 编码,但这不是我想要使用的方法。

这是我的代码。它从数据库中获取所有产品,并在表格行中显示它们的 ID、描述和图像。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>Image Test</title>
<body>
<?php
include("mylibrary/login.php");
login();
$query = "SELECT prodid, description FROM products";
$result = mysql_query($query) or die(mysql_error());

echo "<table width=\"50%\" cellpadding=\"1\" border=\"1\">\n";
echo "<tr><td>Product ID</td><td>Description</td><td>Image</td></tr>\n";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$prodid = $row['prodid'];
$description = $row['description'];

echo "<tr><td>$prodid</td><td>$description</td>\n";
echo "<td><img src=\"showimage.php?id=$prodid\" width=\"80\" height=\"60\"></td></tr>\n";
}
echo "</table>\n";
?>
</body>
</html>

这是 showimage.php 代码。 showimage.php 文件只显示损坏的图像。我查看了图像的原始数据,它们的格式都正确。 :

<?php
//header('Content-Type: image/jpeg');
$prodid = $_GET['id'];
$con = mysql_connect("localhost", "test", "test") or die('');
mysql_select_db("store", $con);

$query = "SELECT picture from products WHERE prodid=$prodid";
$result = mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$picture = $row['picture'];

header("Content-type: image/jpeg");
echo $picture;
?>

如果您能帮助我理解为什么这段代码不起作用,我将不胜感激。我已经阅读了本网站和谷歌搜索的大量文章,他们都说这段代码应该有效。

作为旁注,我不想使用 base64 编码方法,因为我正在上课,这是我们正在使用的方法(我也是唯一遇到此问题的人) .

最佳答案

一般来说,代码看起来差不多没问题。图片的问题是,它必须完全正确,否则无法正确显示。尝试以下操作:

  • 使用“Content-Type:image/jpeg”代替“Content-type:image/jpeg”
  • 删除 showimage.php 中的结束标记 ?> - 如果结束标记后有空格,那可能是您的问题。切勿对纯 PHP 文件使用结束标记。

如果这没有帮助,请删除内容类型的 header 并查看通过调用图片 url 实际返回给您的内容,并将数据与原始图像进行比较。这样你就可以确认图片数据是否正确或者有什么不同。

关于PHP - 存储为 BLOB 的图像显示为断开的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35618306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com