无法以JSON格式存储图像

时间:2015-04-19 03:15:34

标签: php json

下面是我的PHP代码,用于存储包含JSON中的图像(BLOB)列的表:

$query_search1 = "SELECT * FROM rocket WHERE username='".$rocketName."'";
$query_exec1 = mysqli_query($db->getConnection(),$query_search1) or die(mysqli_error($db->getConnection()));
$json = array();

if(mysqli_num_rows($query_exec1)){
    while($row1 = mysqli_fetch_assoc($query_exec1)){
        $json['rocket_profile'][] = $row1;
    }
}

echo json_encode($json);

当我运行此文件时,它只显示一个空白页面,并且不显示任何错误。 如何使用JSON中的数据类型BLOB存储来自MySQL的图像?

1 个答案:

答案 0 :(得分:0)

如果您没有特定的理由将图像数据存储在数据库中,则更明智的解决方案是将图像保存到Web服务器并存储保存图像的路径。这允许图像可缓存,减少数据库的开销,并且使用文件系统引用的速度要好得多。

如果确实有特殊原因,那么您需要对二进制数据进行编码并稍后进行处理。

while($row1 = mysqli_fetch_assoc($query_exec1)){
    $row1['picture'] = base64_encode($row1['picture']);
    $json['rocket_profile'][] = $row1;
}

然后,您可以在代码中使用编码图像。但要小心,这可能比仅存储引用路径慢,即使您存储编码数据而不是存储二进制blob。