【问题标题】:how to display picture from data base? if i try to display it. it only shows the name of the image如何显示数据库中的图片?如果我尝试显示它。它只显示图像的名称
【发布时间】:2021-04-21 09:46:50
【问题描述】:

这是我尝试使用 base64 的代码,但出现同样的问题,img 已保存在我的服务器/文件夹中

$sql = "SELECT * FROM prods";
$result  = $con->query($sql);
if ($result->num_rows > 0) {


  echo "<table border='2'><tr><th>Name</th><th>Price</th><th>Photo</th><th>Stocks</th></tr>";
 
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>" . $row["prodName"]."</td><td>" . $row["prodPrice"]. "</td><td>" . $row["prodPic"]
        /*'<img src="data:image;base64,'.base64_encode($row["prodPic"]).'" alt="Image" style="width: 10px; height: 10px;" >';*/."</td><td>" . $row["prodQuant"]. "</td></tr>";
    }
    echo "</table>";  

    }


?>
    </div>
    <div>
        <form action="up.php" method="POST" enctype="multipart/form-data">
            <input type="text" name="filename" placeholder="File name">
            <input type="text" name="fileTitle" placeholder="Image Name">
            <input type="text" name="fileDesc" placeholder="Price">
            <input type="file" name="file">
            <button type="submit" name="submit"> Upload </button>
    </div>

【问题讨论】:

  • 看来你只需要写&lt;img src='" . $row["prodName"]."'&gt;,这样链接就指向了服务器上的文件。如果图像在服务器磁盘上,那么我认为不需要涉及 base64。
  • 顺便说一句 base64 是注释
  • 我知道,但你也没有替代的 img 标签。如果要显示图像,则需要一个。你试过我上面的建议了吗?如果您将它们存储在存储 PHP 脚本的子文件夹中,则可能需要在文件名之前添加一个文件夹。
  • 是的,我已经尝试过只是一个图标卸载图片,我不知道那叫什么。仍然不会显示图像。:\xampp\htdocs\OVS\img(图像存储位置)
  • 您的 PHP 脚本是否存储在 htdocs 中?在这种情况下,正如我已经指出的那样,您需要指定图像的(相对)路径。例如也许像&lt;img src='OVS/img/" . $row["prodName"]."'&gt; 这样的东西。 (记住,目标是形成图像文件的有效 URL,然后浏览器将使用该 URL 下载它并将其显示在 img 标记中。如果您打开浏览器的网络工具然后加载您的页面,您'会看到一个请求被记录到你的 img 标签中的 URL。你可以在那里检查 URL 是否正确以及它返回的状态代码。)

标签: php mysql database


【解决方案1】:
"<img src='img/" . $row["prodPic"]."'>"

【讨论】:

    【解决方案2】:

    所以我假设 $row['prodPic'] 是一个 string 包含一个图像文件的相对路径。

    如果是这种情况,首先您需要保存所有这些图像的基本目录(假设您将它们保存在某处)。假设该目录是/var/www/app/uploads,并且存在于一个名为$uploadsDir 的变量中。

    然后,在您拥有base64_encode 的行中,您应该调用base64_encode(file_get_contents($uploadsDir.DIRECTORY_SEPARATOR.$row["prodPic"])

    现在,这是实现您想要的最简单的方法,但它是一种可怕的方法。 Base64 内联图像使您的文档非常沉重。最好提供指向另一个脚本的链接,该脚本将为您的应用程序提供图像。浏览器将为您处理图像检索。

    【讨论】:

    • prodPic 是存储图片的数据库列。
    • 对此不太确定。给定代码和图像,它存储的不是实际图像,而是图像的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多