猿问

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

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

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

我对php变量有问题。$result这里。

到目前为止,我的代码:(Director.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中的变量$结果输入到HTML中,以便将其显示在<img>标签?


繁花不似锦
浏览 716回答 3
3回答

函数式编程

您不能。您需要创建另一个php脚本来返回图像数据,例如getImage.php。将Director.php更改为:<body><img&nbsp;src="getImage.php?id=1"&nbsp;width="175"&nbsp;height="200"&nbsp;/></body>然后getImage.php是<?php &nbsp;&nbsp;$id&nbsp;=&nbsp;$_GET['id']; &nbsp;&nbsp;//&nbsp;do&nbsp;some&nbsp;validation&nbsp;here&nbsp;to&nbsp;ensure&nbsp;id&nbsp;is&nbsp;safe &nbsp;&nbsp;$link&nbsp;=&nbsp;mysql_connect("localhost",&nbsp;"root",&nbsp;""); &nbsp;&nbsp;mysql_select_db("dvddb"); &nbsp;&nbsp;$sql&nbsp;=&nbsp;"SELECT&nbsp;dvdimage&nbsp;FROM&nbsp;dvd&nbsp;WHERE&nbsp;id=$id"; &nbsp;&nbsp;$result&nbsp;=&nbsp;mysql_query("$sql"); &nbsp;&nbsp;$row&nbsp;=&nbsp;mysql_fetch_assoc($result); &nbsp;&nbsp;mysql_close($link); &nbsp;&nbsp;header("Content-type:&nbsp;image/jpeg"); &nbsp;&nbsp;echo&nbsp;$row['dvdimage'];?>

莫回无

严格来说,你能,会,可以也可以将图像数据放入IMG标记中,使用数据URI.<img&nbsp;src="data:image/jpeg;base64,<?php&nbsp;echo&nbsp;base64_encode(&nbsp;$image_data&nbsp;);&nbsp;?>"&nbsp;/>有些特殊的情况下,这甚至可能是有用的,尽管在大多数情况下,您最好通过单独的脚本服务映像就像达索格建议的那样.

心有法竹

您需要检索信息并将其分解到所需的内容中。while($row&nbsp;=&nbsp;mysql_fetch_array($result))&nbsp;{ &nbsp;echo&nbsp;"img&nbsp;src='",$row['filename'],"'&nbsp;width='175'&nbsp;height='200'&nbsp;/>";}
随时随地看视频慕课网APP
我要回答