我有一个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类型的列名。
答案 0 :(得分:1)
要将blob保存到DataBase
,您必须将base64 satring
图片转换为Byte[]
,然后将byte[]
保存到db
。
用于将base64 string
转换为位图
public static Bitmap decodeBase64Profile(String input) {
Bitmap bitmap = null;
if (input != null) {
byte[] decodedByte = Base64.decode(input, 0);
bitmap = BitmapFactory
.decodeByteArray(decodedByte, 0, decodedByte.length);
}
return bitmap;
}
现在您可以将此Bitmap
转换为Byte[]
赞:
public static byte[] getBytesFromBitmap(Bitmap bitmap) {
if (bitmap!=null) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream);
return stream.toByteArray();
}
return null;
}
然后最后您可以将此字节[]保存到Db.make确保您的列名称type
与blob
享受您的代码:) -
答案 1 :(得分:0)
getBytes
为您提供字符串的字节,它不执行base64解码。您需要使用Base64解码器进行转换。一点点搜索将显示您可以使用的几个选项。