有一点麻烦,我试图查看一个base64编码的图像,这是作为一个斑点保存在我的服务器上。我想用一个image标签在里面查看它,或者将它回显为一个html文件,我可以用image标签来引用它。
问题是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。
如何将其视为图像?我需要对它进行反编码吗?
发布于 2011-12-14 10:37:29
试试这个:
echo '<img src="data:image/png;base64,'.base64_encode($blob_data).'">';发布于 2011-12-14 10:28:41
您可以使用mysql的cast or convert函数。您也可以尝试使用bin2hex PHP函数。
发布于 2011-12-14 10:32:30
数据库并不具有创造性-它们存储的数据与您放入的数据几乎完全相同,然后检索该数据。
这意味着,如果在插入数据之前将数据编码到base64中,则必须从base64中解码才能获得有意义的信息。
注意:最好将文件作为映像存储在文件系统中,并将文件路径存储在数据库中,而不是直接将映像放入数据库中
您可以使用所需的任何文件路径,甚至可以从文档根目录之外使用(但应注意不允许遍历/显示敏感文件):
while($row = mysql_fetch_array( $result )){
$file_path = $row[0];
echo file_get_contents($file_path);
}https://stackoverflow.com/questions/8498843
复制相似问题