Node.js – 在本地下载并保存PDF文件进行脱机 – 文件损坏

我目前有一个使用Node Webkit构build的桌面应用程序。 当用户在线时,应用程序将从服务器打开PDF文件。 然后,我将这些文件保存在本地,以便在脱机时可用。

我正在使用Node.js文件系统的fs.writeFile()在本地保存PDF,但是当试图通过应用程序打开它时,PDF是空的。 当我尝试从文件夹中直接打开它时,出现以下错误。

在这里输入图像描述

任何人都可以请指教?

//save PDF file for offline function saveFile(pdfvar) { var filename = 'test.pdf'; fs.writeFile(filename, pdfvar); } //open PDF in new window $('#stage').on('click', '#pdflink', function(event){ var pdfvar = (this.getAttribute('data-pdffile')); window.open(pdfvar, "_blank"); if(online===true){ saveFile(pdfvar); } }); 

  1. 你是否在DOM元素属性this.getAttribute('data-pdffile')保存PDF的全部内容? 这是它可能被损坏的地方。

  2. 你打电话时

     window.open(pdfvar, "_blank"); 

内容并没有准备好像那样打开。 它应该首先转换为base64编码的url。

 window.open('data:application/pdf,' + escape(pdfvar)); 

更新:

实际的问题是OP正试图使用​​它的URL在“pdfvar”中保存文件

 fs.writeFile(filename, pdfvar); 

但创build的文件只包含一个URL本身。 所需要的是使用http库首先下载文件:

  • 如何使用Node.js下载文件(不使用第三方库)?