如何将NextJs中的文件docx保存到Prisma ORM?

问题描述 投票:0回答:1

所以当我将文件保存到 Prisma 中具有 Byte 类型数据的数据库时,我遇到了问题,我已经成功保存了它,我使用 readAsDataURL 将其转换为 base64 字符串,但是当我想再次将其获取到前端时,格式仍然是 base64 ,我想再次解码为原始格式docx,如何解码?

let fileSurat = null;
if (suratData?.surat?.file) {
  const file = suratData.surat.file;
  const reader = new FileReader();
  reader.readAsDataURL(file);
  fileSurat = await new Promise((resolve) => {
    reader.onload = () => resolve(reader.result);
  });

这是我用来将其转换为字符串以便将其保存到数据库的代码,因为我使用axios发送数据,所以如果我将其转换为blob,axios无法发送对象,请帮我找到这个问题的解决方案,有有办法将其解码为原始文件docx吗?

javascript next.js axios prisma-orm
1个回答
0
投票

要将 Base64 字符串中检索到的数据解码回 docx,请创建一个如下所示的函数,并将结果传递给它,然后再发送到 UI。

const base64ToBlob = (base64, mimeType) => {
  const byteCharacters = atob(base64);
  const byteNumbers = new Array(byteCharacters.length);
  for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
  }
  const byteArray = new Uint8Array(byteNumbers);
  return new Blob([byteArray], { type: mimeType });
}
© www.soinside.com 2019 - 2024. All rights reserved.