我有一个前端,用户可以在其中上传文档(PDF)。它将这些 PDF 转换为 Base64 字符串,然后将其发送到微服务,并在其中上传到 Backblaze B2。这种方法在上传.jpg文件时效果很好,但是当尝试使用文件时,.pdf在 Backblaze 网站上浏览文件时它不允许我打开它:这是我的前端代码:export const toBase64 = (file: File | Blob) => new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = (error) => reject(error); });...const base64String = await toBase64(acceptedFiles[index]);onSelectFile(base64String as string);这是我的后端代码:const { base64String, fileName } = request.body.input;const fileBuffer = Buffer.from( base64String.replace(/^data:image\/(png|gif|jpeg|jpg|pdf);base64,/, ""), "base64");const getUploadUrlResponse = await b2.getUploadUrl({ bucketId: process.env.BACKBLAZE_BUCKET_ID || "bucketId",});const uploadFileResponse = await b2.uploadFile({ uploadUrl: getUploadUrlResponse.data.uploadUrl, uploadAuthToken: getUploadUrlResponse.data.authorizationToken, fileName: fileName, data: fileBuffer, mime: "application/pdf",});正如我所说,上传 .jpg 时效果很好,但使用 .pdf 时会导致“无法加载 PDF 文档”。我不确定我做错了什么或如何解决这个问题。
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
使用这个
base64String.replace(/^data:.+;base64,/, "")
代替
base64String.replace(/^data:image\/(png|gif|jpeg|jpg|pdf);base64,/, "")
作品。
添加回答
举报
0/150
提交
取消