• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Github API 响应“content is not valid Base64”

武飞扬头像
kartjim
帮助13

使用Github API上传文件时,将需要上传的文件放入 contents 里时,接口会报错,提示 content is not valid Base64

根据提示,需要将要上传的文件转换为 Base64 格式:

export const getBase64 = (file) =>
  new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = () => resolve(reader.result);
    reader.onerror = (error) => reject(error);
  });

而当再次尝试之后,发现还是提示 content is not valid Base64 ,经过多次尝试之后发现,需要将 Base64 格式的前缀去掉,例如:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCA

其中,需要将 data:image/png;base64, 去掉才行。

使用正则去掉:.replace(/^data:image\/\w ;base64,/, "")

最终上传成功:

const content = await getBase64(file);

await octokit.request(`put /repos/${toast.username}/${toast.repo}/contents/${filename}`, {
      message: `upload:${filename}`,
      content: content.replace(/^data:image\/\w ;base64,/, ""),
      branch: "master",
      headers: {
        'X-GitHub-Api-Version': '2022-11-28'
      }
    }).then(onSuccess).catch(onError)

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhcbfe
系列文章
更多 icon
同类精品
更多 icon
继续加载