Javascript Node.js-下载PDF文件并在本地保存以供脱机使用-文件已损坏
我目前有一个用Node Webkit构建的桌面应用程序。当用户在线时,应用程序将从服务器打开PDF文件。然后我将这些文件保存在本地,以便脱机时可用 我正在使用Node.js文件系统的fs.writeFile()在本地保存PDF,但是当试图通过应用程序打开它时,PDF是空白的。当我试图直接从文件夹打开它时,我得到以下错误 有人能给我建议吗Javascript Node.js-下载PDF文件并在本地保存以供脱机使用-文件已损坏,javascript,jquery,node.js,pdf,node-webkit,Javascript,Jquery,Node.js,Pdf,Node Webkit,我目前有一个用Node Webkit构建的桌面应用程序。当用户在线时,应用程序将从服务器打开PDF文件。然后我将这些文件保存在本地,以便脱机时可用 我正在使用Node.js文件系统的fs.writeFile()在本地保存PDF,但是当试图通过应用程序打开它时,PDF是空白的。当我试图直接从文件夹打开它时,我得到以下错误 有人能给我建议吗 //save PDF file for offline function saveFile(pdfvar) { var filename = 'tes
//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);
}
});
window.open(pdfvar, "_blank");
window.open('data:application/pdf,' + escape(pdfvar));
更新:
实际问题是OP试图使用“pdfvar”中的URL保存文件
但是创建的文件本身只包含一个URL。首先需要使用http库下载文件:
pdfvar
不包含有效的PDF文件它包含有效的PDF文件。它在联机时可以打开,但在本地保存时不会打开,因此在保存时会发生一些事情。如果可以,请将PDF上传到联机的某个位置,然后将链接粘贴到此处。我们需要查看文件的二进制内容。1.Im不能在DOM中保存全部内容。只是PDF文件的URL。那一定是我出错的地方。我该如何解决这个问题。现在,即使我在线,也会看到“无法加载PDF文档”。@LeeTee那么,为什么要将URL传递给“保存文件”?然后您将得到fs.writeFile('test.pdf',')。第二个参数应该是实际数据,而不是URL。您在本地保存的文件现在是一个文本文件,里面只有一个URL…您的URL是什么?它是带有“http://domain.com/files/file.pdf”的绝对地址还是相对地址,即“files/file.pdf”?应该是绝对的是的,绝对的。好的,那么我如何在线从PDF文件中获取数据以在本地写入它呢?我在任何地方都找不到信息,所以我做错了。我想我可以下载PDF文件并保存它
fs.writeFile(filename, pdfvar);