如何从MySQL数据库中检索图像并显示在html标签中

2022-08-30 14:10:39

我使用phpmyadmin创建了一个带有表的MySQL数据库。我创建了这个带有BLOB列的表来保存jpeg文件。

我在这里有关于php变量的问题。$result

到目前为止,我的代码:(目录.php):

<body>
<?php
  $link = mysql_connect("localhost", "root", "");
  mysql_select_db("dvddb");
  $sql = "SELECT dvdimage FROM dvd WHERE id=1";
  $result = mysql_query("$sql");
  mysql_close($link);

?>
<img src="" width="175" height="200" />
</body>

如何将变量从 PHP $result到 HTML 中,以便在标记中显示它?<img>


答案 1

你不能。您需要创建另一个php脚本来返回图像数据,例如getImage.php。将目录.php更改为:

<body>
<img src="getImage.php?id=1" width="175" height="200" />
</body>

然后 getImage.php 是

<?php

  $id = $_GET['id'];
  // do some validation here to ensure id is safe

  $link = mysql_connect("localhost", "root", "");
  mysql_select_db("dvddb");
  $sql = "SELECT dvdimage FROM dvd WHERE id=$id";
  $result = mysql_query("$sql");
  $row = mysql_fetch_assoc($result);
  mysql_close($link);

  header("Content-type: image/jpeg");
  echo $row['dvdimage'];
?>

答案 2

从技术上讲,您也可以使用数据URI将图像数据放在img标签中。

<img src="data:image/jpeg;base64,<?php echo base64_encode( $image_data ); ?>" />

在一些特殊情况下,这甚至可能很有用,尽管在大多数情况下,您最好通过Daiscog建议的单独脚本来提供图像。


推荐