我有一個前端,用戶可以在其中上傳文檔(PDF)。它將這些 PDF 轉(zhuǎn)換為 Base64 字符串,然后將其發(fā)送到微服務(wù),并在其中上傳到 Backblaze B2。這種方法在上傳.jpg文件時效果很好,但是當(dāng)嘗試使用文件時,.pdf在 Backblaze 網(wǎng)站上瀏覽文件時它不允許我打開它:這是我的前端代碼: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 時會導(dǎo)致“無法加載 PDF 文檔”。我不確定我做錯了什么或如何解決這個問題。
將 PDF 編碼為 Base64 字符串并使用 Node.js Buffer.from()
達(dá)令說
2023-08-18 16:21:08