使用 android、json 和 php 将图像发送到 mysql
我能够使用将我的位图转换为格式正确的字符串
这是android中的代码
JSONObject values = new JSONObject();
values.put(KEY_CONTRACTUUID, con.UUID);
...
if (con._sig != null) {
String encodedImage = getStringFromBitmap(con._sig);
values.put(KEY_CONTRACTSIGIMAGE, encodedImage);
private static String getStringFromBitmap(Bitmap bitmapPicture) {
/*
* This functions converts Bitmap picture to a string which can be
* JSONified.
*/
final int COMPRESSION_QUALITY = 100;
String encodedImage;
ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream();
bitmapPicture.compress(Bitmap.CompressFormat.PNG, COMPRESSION_QUALITY,
byteArrayBitmapStream);
byte[] b = byteArrayBitmapStream.toByteArray();
encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
return encodedImage;
}
现在它在 base64 和一个字符串中,我需要正确检索它以放置在 mysql 中的 BLOB 中
我没有使用名称值对或任何废话 - 只需将其作为 json 发送并获取 json 字符串,如下所示:
$json = json_decode($HTTP_RAW_POST_DATA,true);
echo var_dump(HTTP_RAW_POST_DATA);
...
$varsigimage = $json['sigimage'];
$formatedJSONimage = "{'sigimage': '$varsigimage'}";
var_dump($formatedJSONimage);
$sigImagedecoded = json_decode($formatedJSONimage);
var_dump($sigImagedecoded);
我需要在图像上调用 json_decode 以使其脱离 64 位以放置在 blob 中正确吗?
但是要做到这一点,我需要使用函数 json_decode,但是 json_decode 假设我会给它一个 JSONObject,并且由于我的 $json 对象中有更多对象,我需要重新创建一个仅包含图像的单个 JSON 对象。 ,并将其传递给 json_decode 但它会返回 SYNTAX 类型的 json_error
我做错了什么,将base64字符串转换为blob的正确方法是什么?
是的,关于将它从 blob 中恢复为 base64 字符串,我也会有同样的问题