PHP输出图像而不是字符串

时间:2017-01-04 14:29:06

标签: php mysql pdo

对于PHP来说,我是一个完整的新手,所以请提前道歉。

我试图查询我的表并返回表中的所有数据,我有以下工作只返回最后一列作为longtext字符串,我想将其用作图像来源所以它返回一个图像,这有意义吗?

try {
 $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $stmt = $conn->prepare("SELECT * FROM `o18-reg`");
 $stmt->execute();

 $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);

 foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
     echo $v;
 }
}

1 个答案:

答案 0 :(得分:4)

首先,我想建议您不要将图像本身放入数据库中。最好将文件系统中的图像URL或绝对路径保存到数据库表中。

另外,请确保在header图像数据时设置正确的echo信息。 如果没有右header,它将在客户端打印为字符串。

因此,如果图像是jpeg,则可以在使用echo打印图像之前添加标题代码,如下所示:(如果您使用{编码图像数据,也不要忘记执行base64_decode {1}})

base64

如果是png,那么您可以使用以下内容:

header("Content-type: image/jpeg");
echo base64_decode($my_image);