如有必要,将 = 或 == 添加到 base64
Add = or == to a base64 if necessary
我正在使用 Ionic Choose
插件在应用程序中获取文件,这个在解决 returns 我选择的文件的 base64,问题是这个 base64 永远不会结束在某些情况下必要时使用 =
或 ==
。
尝试将此 base64 发送到服务器时 returns 出错,因为字符串末尾缺少 =
或 ==
。
所以我得到了 base64
this.chooser.getFile()
.then((file) => {
let base64 = file.dataURI;
})
.catch((err) => {
console.log(err);
});
我能否以某种方式检测 base64 是否需要 =
或 ==
来完成字符串?
Base64 'blocks' 由 4 个字符组成,因此如果最后一个块包含的字符少于 4 个,则会用“=”符号填充,因此它可以包含 0 到 2 个“=”符号,这就是为什么dataURI的长度需要是4的倍数,你可以这样做:
let base64 = file.dataURI;
const len = base64.length;
const modifiedBase64 = base64 + "=".repeat(len%4);
我正在使用 Ionic Choose
插件在应用程序中获取文件,这个在解决 returns 我选择的文件的 base64,问题是这个 base64 永远不会结束在某些情况下必要时使用 =
或 ==
。
尝试将此 base64 发送到服务器时 returns 出错,因为字符串末尾缺少 =
或 ==
。
所以我得到了 base64
this.chooser.getFile()
.then((file) => {
let base64 = file.dataURI;
})
.catch((err) => {
console.log(err);
});
我能否以某种方式检测 base64 是否需要 =
或 ==
来完成字符串?
Base64 'blocks' 由 4 个字符组成,因此如果最后一个块包含的字符少于 4 个,则会用“=”符号填充,因此它可以包含 0 到 2 个“=”符号,这就是为什么dataURI的长度需要是4的倍数,你可以这样做:
let base64 = file.dataURI;
const len = base64.length;
const modifiedBase64 = base64 + "=".repeat(len%4);