如何将来自 Firebase 的 pdf 文件保存在网络的本地文件夹中

Posted

技术标签:

【中文标题】如何将来自 Firebase 的 pdf 文件保存在网络的本地文件夹中【英文标题】:How to save pdf file from Firebase in local folder from web 【发布时间】:2021-12-27 16:41:21 【问题描述】:

如何从 Firebase 存储下载并保存 pdf 文件。 在上传期间,我将上传信息保存在实时 firebase 节点上,如下所示:

虽然我的存储如下:

我的存档链接到这个功能:

function savepdfFile()
 let selectedGroup = document.getElementById("groupname");
 let selectedDate = document.getElementById("dateId");
 let selectedGroupValue = selectedGroup.value;
 let selectedDateValue = selectedDate.value;
 let mdate = "";
 mdate = changeDateForamat(selectedDateValue);
 downloadPDFDoc(selectedGroupValue,mdate);

当点击保存按钮时,我从 firebase 实时节点检索此 pdf 文件的信息,如下所示;

function downloadPDFDoc(groupname,mdate)
let pdfName, pdfUrl;
firebase.database().ref('SessionPDFStorage').once('value',function(snapshot)
    snapshot.forEach(
        function(ChildSnapshot)                
            //let mLocation = ChildSnapshot.val().province;
            let mGroup = ChildSnapshot.val().selectedGroup;
            let mydate = ChildSnapshot.val().currentDate;

            let ddate = changeDateForamat(mydate);

            if(groupname == mGroup && mdate == ddate)                    
                pdfName =  ChildSnapshot.val().fileName;
                pdfUrl =  ChildSnapshot.val().fileImageUri;
                           
        
    );
    loadScannedImage(pdfName,pdfUrl);        
 );    

如何开发下面的loadScannedImage(pdfName,pdfUrl)函数来使用以上信息动态保存本地文件夹中的文件?示例自动将此 pdf 保存到本地 c:\download 目录。

function loadScannedImage(pdfName,pdfUrl)


我已经看到了 FileSaver.js 和 Blob.js 的一些实现,但不太清楚我将如何使用它们。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我创建了一个锚元素并将 pdf 名称和它的 url 链接作为属性传递给 loadcnnedImage:

function loadScannedImage(pdfName,ImgUrl)   
 var element = document.createElement('a');
               element.setAttribute('href',`$ImgUrl`);
               element.setAttribute('download', pdfName);
               document.body.appendChild(element);
               element.click()

但我希望将 pdf 文件直接动态安全地保存到机器上浏览器默认下载的文件夹中。但这也有效

【讨论】:

以上是关于如何将来自 Firebase 的 pdf 文件保存在网络的本地文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何将pdf文件上传到firebase存储?

如何将数据保存在firebase父键中不是默认值

如何将从 Google Place API 获取的信息存储到 Firebase?

如何通过 android 将文件保存到 Firebase 托管文件夹位置以获取图像?

将 Firebase 数据下载为 Excel 文件或 PDF 文件

如何在 firebase 中添加来自用户的数据,而不是替换已经存在的数据?