使用PHP从mysql加载文件

使用PHP从mysql加载文件,php,mysql,file,Php,Mysql,File,我将图像作为blob存储在mysql数据库中。我可以通过变量中的查询加载这些文件,但如何将此变量的内容作为图像发送回浏览器 html文件是否可以包含以下内容?或者如何发出请求?您需要一个脚本来回显图像数据。用于设置适当的内容类型,然后回显数据。例如: header("Content-type: image/png"); ... echo $db_results['imgdata']; 然后,从HTML页面调用脚本,如下所示: <img src="yourimagescript.php"

我将图像作为blob存储在mysql数据库中。我可以通过变量中的查询加载这些文件,但如何将此变量的内容作为图像发送回浏览器


html文件是否可以包含以下内容?或者如何发出请求?

您需要一个脚本来回显图像数据。用于设置适当的内容类型,然后回显数据。例如:

header("Content-type: image/png");
...
echo $db_results['imgdata'];
然后,从HTML页面调用脚本,如下所示:

<img src="yourimagescript.php" />

理想情况下,您应该将文件类型存储在图像数据旁边的列中,以便动态设置正确的内容类型。

PHP

<?php
mysql_connect("localhost","test","test");
mysql_select_db("test");
$imageid = (int)$_GET['imgid'];
$rs = mysql_query("select * from images where imageid=$imageid");
$row = mysql_fetch_assoc($rs);
$imagebytes = $row['imgdata'];
header("Content-type: image/jpeg");
print $imagebytes;
?>

HTML

<img src="location_to_your_php_script.php?imgid=21" alt="xxx" />


当然,您需要根据图像更改mime类型。即使您将$\u GET参数强制转换为int,也值得转义数据,以便不知道的人可以复制并粘贴该数据,并打开SQL注入。谢谢!我也在Brad的帖子中写了我的代码,但是你的解决方案对我来说很好。非常感谢你的努力@塞纳德,你的智力呢?这有什么用?这不仅仅是一个简单的演员阵容?背景中有什么事情发生吗?像转义之类的吗?当强制转换为int时,url中的sql注入不会应用于变量,例如$int=(int)“'truncate table users”;将为0,因此sql注入没有问题。