我已经将位图编码为java方法的Base64字符串。然后我将这个字符串作为JSON发送到php webservice,它将把它插入到longBlob中。
iVBORw0KGgoAAAANSUhEUgAAAtAAAAQOCAYAAADysw / 5AAAABHNCSVQICAgIfAhkiAAAIABJREFU \ neJzs3c1WG1maLuBwr76A8A004szPkuxxrxJ4Xghzxg6cfcbgco0L48weW .....
但出于某种原因,当我做的时候
$cust_sign = base64_decode($encodedString);
`$cust_sign` is `null`.
这是我用来编码的:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG,50,baos);
byte[] bytes=baos.toByteArray();
String base64Image = Base64.encodeToString(bytes,Base64.DEFAULT);
我在php脚本中也有这个:
if (base64_decode($cust_sign, true))
{
echo "valid";
}
它确实回应了有效的
你知道为什么吗?
谢谢
答案 0 :(得分:2)
由于某种原因,您的字符串包含换行符(\ n)。删除它们,它应该工作。
编辑:尝试将Base64.encodeToString()中的第二个参数从Base64.DEFAULT更改为Base64.NO_WRAP。
答案 1 :(得分:1)
尝试添加strict参数以检查字符串是否包含base64字母表之外的字符。如果函数返回FALSE,则可能表示您有一个格式错误的base64字符串
答案 2 :(得分:0)
“\”不包含在Base64中。看来你的代码中有换行符“\ n”。这不是您的解码失败,而是您对内容进行编码的方式。使用您正在使用的流程更新您的问题,我将更多地编辑我的答案,以便更具体。