所以当我将文件保存到 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吗?
要将 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 });
}