亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 PDF 編碼為 Base64 字符串并使用 Node.js Buffer.from()

將 PDF 編碼為 Base64 字符串并使用 Node.js Buffer.from()

達令說 2023-08-18 16:21:08
我有一個前端,用戶可以在其中上傳文檔(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,/, "")

作品。


查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號