有点麻烦我试图查看作为blob保存在我的服务器上的base64编码图像。我想用图片标签查看里面的内容,或者将其作为html文件回显,我可以用图片标签来引用它。
问题是blob数据从我的服务器返回错误。
<?php
$select = "SELECT `data`
FROM `sandbox`.`photos`
WHERE `id` = 4
LIMIT 0 , 1";
$result = mysql_query($select, $connection);
while($row = mysql_fetch_array( $result )){
$blob_data = $row[0];
echo "$blob_data";
}
?>
问题是这会重新调整5.533782782 * E。
如何将其视为图像?我需要对其进行解码吗?
答案 0 :(得分:4)
试试这个:
echo '<img src="data:image/png;base64,'.base64_encode($blob_data).'">';
答案 1 :(得分:0)
您可以使用mysql cast or convert功能。您还可以尝试bin2hex PHP函数。
答案 2 :(得分:0)
数据库不具有创造性 - 它们存储的数据几乎与您放入的数据完全相同,然后检索确切的数据。
这意味着如果在插入数据之前将数据编码到base64中,则必须从base64解码才能获得有意义的信息。
注意:最好将文件存储为文件系统中的图像,以及数据库中的文件路径,而不是仅将图像直接存入数据库
您可以使用您想要的任何文件路径,甚至可以从文档根目录外部使用(尽管应该注意不要允许遍历/显示敏感文件):
while($row = mysql_fetch_array( $result )){
$file_path = $row[0];
echo file_get_contents($file_path);
}