【问题标题】:Getting data with images from Remote DB to sqlite DB将带有图像的数据从远程数据库获取到 sqlite 数据库
【发布时间】:2011-04-25 02:30:53
【问题描述】:

我正在制作一个 android 应用程序,它需要获取一个包含 4 列的表,其中 1 列是从远程数据库到 sqlite 数据库的 BLOB 格式的图像。现在我可以通过 JSON 获取除图像列之外的所有信息。但是图像总是显示为空。我的 php 页面代码是

$q=mysql_query("SELECT * From Table WHERE FID>'".$_REQUEST['FID']."'"); 而($e=mysql_fetch_assoc($q)) $输出[]=$e;

打印(json_encode($output));

mysql_close(); ?> 提前致谢。

【问题讨论】:

    标签: php android mysql image sqlite


    【解决方案1】:

    没有数据库,很难确定 - 表的架构会很有用。

    首先,我会检查同一查询的 mysql(命令行)输出,看看它在数据库中是否为空。

    其次,您需要将图像数据转换为 UTF8 友好格式 - base64 即可。根据 value 字段的json_encode 文档:

    此函数仅适用于 UTF-8 编码数据。

    编辑

    • 要将 blob 编码为 base64,请在 PHP 端的相关字段中使用 base64_encode
    • 要将 JSON 字段解码回 Android 应用中的字节 [],请使用 Base64.decode)

    【讨论】:

    • 好的,我已经验证了图像在那里,并用 FID 和图像创建了一个新表,但是 json 是 [{"FID":"1","Image":null}] 等. 那么我究竟如何将它按摩成UTF8 友好的格式呢?感谢您迄今为止的帮助。
    • 谢谢,我很确定我知道如何通过 base64 解码将它放入 android ap,但我是一个完整的 php 初学者,所以我想知道如何隔离图像以对其进行编码在我的 php 文件中?
    • 将 '$output[] = $e' 更改为 '{ $e['Image'] = base64_encode($e['Image']); $output[] = $e }'
    猜你喜欢
    • 2011-11-06
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多