【问题标题】:How to decode a base64 string image into byte array and store it as blob type in database?如何将 base64 字符串图像解码为字节数组并将其作为 blob 类型存储在数据库中?
【发布时间】:2014-12-16 05:24:28
【问题描述】:

我有一个 Base64 字符串图像,它存储在我的移动数据库中。我想把它转换成blob类型并保存在数据库中。

我有String base64Image="iVBORw0KGgoAAAANSUhEUgAAAGAAAACgCAYAAADzcGmMAAAACSV...";

这是我尝试过的。

 byte[] byteImage=org.apache.commons.codec.binary.Base64.decodeBase64(befImage.getBytes());

 json.put("during_unloading_photo", byteImage); 

其中 json 是我的 JSONObject,并且 during_unloading_photo 是 blob 类型的列名。我无法将字节数组(即 byteImage)作为 blob 类型存储在我的数据库中。

【问题讨论】:

  • 那么,你有什么错误吗?将二进制数据放入名为json 的东西似乎是错误的。 json 是如何存入数据库的?
  • 我的要求是通过手机发送有关客户的详细信息,这将自动从移动数据库同步到主数据库..我能够同步除客户照片之外的所有详细信息..存储在我的移动数据库中作为 base64 字符串..

标签: java android


【解决方案1】:

所以你有一个这样的查询创建的表:

query = "CREATE TABLE IF NOT EXISTS " + ImageTableName + " ("
                        + Id + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                        + ImageUrlName + " TEXT, "
                        + ImageContentName + " BLOB );";
                db.execSQL(query);

当您需要更新数据库中的图像时,您可以这样做:

ContentValues values = new ContentValues();

values.put(DbUtil.ImageContentName, byteImage);

int rowCount = context.getContentResolver().update(DbUtil.ContentUriImage, values, ImageUrlName + "=?", whereArgs);

这很简单。

【讨论】:

  • 谢谢@anil..我用来将base64字符串解码为字节数组的函数..是正确的吗??
  • 我已经将捕获的图像作为 base64 字符串存储在我的移动数据库中。我需要将图像(即 base64 字符串)同步到主数据库,并将其存储为 blob 类型。
  • @Thejas,您可以通过将其结果与解码后的预期结果进行比较来检查它是否是正确的函数。
猜你喜欢
  • 2018-08-05
  • 2017-01-05
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 2013-07-04
  • 2014-02-18
  • 1970-01-01
相关资源
最近更新 更多