首页 > 解决方案 > 将 pdf 编码为 base64 字符串保存到 Firebase 存储

问题描述

var storageRef = firebase.storage().ref();
var ref = storageRef.child("filename.pdf");
let answ = result.toString("base64");

ref.putString(answ, "base64").then(function (snapshot) {
  console.log("Uploaded a base64 string!");
});

我正在使用此“result.toString("base64")”作为附件文件到电子邮件类似字符串 base64,但不能使用它来保存到 Firebase 存储

完整错误:

[FirebaseStorageError [FirebaseError]:Firebase 存储:字符串与格式“base64”不匹配:找到无效字符(存储/无效格式)] { 代码:“存储/无效格式”,customData:{ serverResponse:null } } 我得到了总是这个错误并且谷歌搜索太多,但仍然没有任何信息。我用“result.toString("base64")”附加这个类似base64字符串来发送电子邮件并且它正在工作,但不能保存到存储中。有人可以帮忙吗?

标签: javascriptfirebasefirebase-storage

解决方案


哟可以试试这个:

 let Reader = new FileReader()
 Reader.onload = (event)=>{
      let result = event.target.result
      console.log(result)
                            
      storage.child("files/"+file.name).putString(result,"data_url", 
      {contentType:"application/pdf"}).then(function(snapshot) {
         console.log(snapshot);
      });
 }
 Reader.readAsDataURL(file) // file is blob

我希望这会有所帮助,最好的问候!


推荐阅读