【问题标题】:How to get BLOB image file from MYSQL server via JSON efficiently如何通过 JSON 有效地从 MYSQL 服务器获取 BLOB 图像文件
【发布时间】:2016-01-01 17:45:11
【问题描述】:

我的 MYSQL 数据库包含 5 行

id, name, username, password, email, image

图像类型是 BLOB。

下面是我的 PHP 代码,用于从 MYSQL 获取 JSON 数据。

while($row = mysqli_fetch_array($res)){
     array_push($result,
         array('id'=>$row[0],
               'name'=>$row[1],
               'username'=>$row[2],
               'password'=>$row[3],
               'email'=>$row[4],
               'image'=>$row[5])
               ));
}

echo json_encode(array("result"=>$result));

我的应用程序将加载比预期更长的时间来从返回的 JSON 中解析 base64 图像字符串。

那么高效存储和检索图像文件的最佳方法是什么?

【问题讨论】:

  • 一个建议是将imagepath 而不是图像存储在您的db 中,并在android 中显示来自您通过json 收到的imagepath 的图像
  • 简单的答案是它完全没有效率。提高效率的唯一方法是不要将图像存储为 blob。

标签: php android mysql json image


【解决方案1】:

假设您的上述代码是正确的,并且您得到base64 作为图像,您可以简单地执行此操作

while($row = mysqli_fetch_array($res)){
     array_push($result,
         array('id'=>$row[0],
               'name'=>$row[1],
               'username'=>$row[2],
               'password'=>$row[3],
               'email'=>$row[4],
               'image'=>$row[5])
               ));
}

echo json_encode(array("result"=>$result));

在 Android 端,您可以执行类似的操作将其转换为图像。

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

Convert base64 string to Image in Java作为参考

【讨论】:

  • 我试过了,我有一个textview来显示JSON数据,使用这个方法时显示为null
  • @cwfei :最初您使用的是对图像的引用,例如&row[5],而不是重视自身,即$row[5] 再次尝试这种方法
  • 这是我的错误,但我已经改正了,没有base64_decode 我会得到类似"image":"\/9j\/4AAQSkZJRASJDASDJA\/........" 的东西,很长的字符串
  • 这就是实际的base 64 转换图像,您只需将数据原样发送到客户端,即安卓设备并在客户端解码。
  • @cwfei:您所要做的就是将base64字符串发送到客户端,即android并在那里解码,我已经分享了一个关于如何做到这一点的示例,还有其他几种方法可以做到这一点.
【解决方案2】:

我遇到了类似的问题。所以我避免在 MySql 中存储图像。 我将它们作为图像文件存储在服务器中,并使用毕加索来显示图像。它超级容易转换和使用。

【讨论】:

    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    相关资源
    最近更新 更多