如何在 Electron 中使用 fs 保存 PDF 文件?

Posted

技术标签:

【中文标题】如何在 Electron 中使用 fs 保存 PDF 文件?【英文标题】:How to save a PDF file with fs in Electron? 【发布时间】:2018-10-18 21:38:45 【问题描述】:

有一个<input type="file" id="upload" accept="application/pdf"/> 接受应该保存到电子应用程序内某个位置的 pdf。用 fs 保存文件工作得很好,但我不知道它是如何与 pdf 一起工作的。对于数据编码,我不知道我需要将什么交给writeFileSync()

function upload(path)
    "use strict";
    var fs = require('fs');
    var file = $("#upload").prop("files")[0];
    try 
        fs.writeFileSync(path, foo, bar);
     catch(e) 
        console.log(e);
    

【问题讨论】:

看看下面的答案:***.com/questions/31040014/… 这样做吗? 是的,我也找到了这个,但它只是说 body for data 但它没有定义.. 【参考方案1】:

根据我刚才看到的,你需要把你正在捕获的文件路径,用fs.readFile(path[, options], callback)读取它

这会返回一个“数据”值,然后您应该可以使用它来写入您想要的位置。

fs.readFile('/tmp/my.pdf', (err, data) => 
  if (err) throw err;
  fs.writeFileSync(path, data, 'binary');
);

https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback

我从这里开始,看看:How do I handle local file uploads in electron?

答案显示捕获文件名 (dialog.showOpenDialog) 的方式略有不同,但我认为只要您获得完整路径,您所做的应该没问题。

【讨论】:

以上是关于如何在 Electron 中使用 fs 保存 PDF 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Electron 中正确使用 preload.js

FS - 在 Webpack 5 上为 Electron 使用 FS

fs.existsSync 在电子中使用时不是函数

Electron 和 TypeScript:“fs”无法解析

使用电子在本地保存文件

TypeError:fs.​​existsSync 不是函数(Electron/ReactJS/Typescript)