我已经通过 java 方法将位图编码为 Base64 字符串。然后,我将此字符串作为 JSON 发送到 php web 服务,该服务会将其插入到 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";
}
它确实回显有效
你知道为什么吗?
谢谢
最佳答案
由于某种原因,您的字符串包含换行符 (\n )。删除它们,它应该可以工作。
编辑:尝试将 Base64.encodeToString() 中的第二个参数从 Base64.DEFAULT 更改为 Base64.NO_WRAP。
关于php - 为什么 php base64_decode 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15143679/