php - 用 json 返回一个 blob

标签 php android mysql json blob

我正在尝试为我的 android 应用程序创建一个休息服务,其中外部数据库返回要存储在应用程序本地数据库中的项目。除了 blob 被返回为 null 之外,我已经完成了所有工作。

这是我的杰森回应的一个例子。(图片和缩略图字段是 Blob )

{"id":"2","user_id":"1","name":"testing","type":"bouldering","picture":null,"lat":"36","long":"81","alt":"41932","accuracy":"53","thumbnail":null}

这是我返回数据的 php 脚本。

<?php
require_once('config.php');

$mysqli = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
$sql = 'select * from spot_main';
$results =$mysqli->query($sql);

$spots = array();  //array to parse jason from

while($spot = $results->fetch_assoc()){
    $spots[] = $spot;                                                           
}

echo json_encode($spots);
?>

有人知道这个问题的解决方案吗?我知道我这样做并不是最有效的方式(最好将图像存储在文件系统中),但我需要它才能工作。

最佳答案

在生成 JSON 之前将二进制数据编码为 base64。

$obj->picture = base64_encode($binaryData);

然后您可以在您的 Android 应用程序中使用任何 base 64 解码器对其进行解码。由于 API 级别 8,有一个内置的 util class .否则,您可以使用大量外部库来针对 Android 2.1 或更早版本。

关于php - 用 json 返回一个 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323185/

相关文章:

php - 使用 PDO 并获取 "Call to a member function query() on a non-object"

php - Doctrine2 在 select 时有超过 1000 行的问题

java - Android - 在 JSON 中存储有关用户登录的信息

android - 错误:在<declare-styleable>中-无法找到属性

php - 你会将数据库中的一些列表缓存到 php 数组中吗?

php - 使用Ajax+php在mysql表中同时添加多条记录

php - 什么 mysql 查询可以让我从这个表中按月获得汇总统计信息?

android - 每次屏幕打开时重新创建应用程序类

Mysql 查询选择 2 个值和 1 个不同的值

mysql - Doctrine 2 : Use default 0 values instead of null for relation