在电子应用程序中下载和存储文件

时间:2016-02-29 10:21:13

标签: javascript node.js npm desktop-application electron

我正在开发一个应用程序,在第一次运行时必须通过API从网上下载文件(图像jpg / png),然后将其存储在本地,这样就不再需要在线连接了(用户可以在线运行更新,如果有可用的更新,则通过api下载更新的数据。

我知道桌面应用的工作方式非常罕见,但主要目标是将桌面应用数据与网络应用同步。

到目前为止,我已经找到了一个npm插件requestlink)来检查用户是否已连接到互联网。

我不确定是否可以在电子应用中下载和存储文件(因此它会在应用外隐藏)?您能否推荐必要的插件/工具来实现这一目标?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:11)

好吧,您可以使用this answer中的代码段并以节点方式执行此操作。

var http = require('http');
var fs   = require('fs');
var app  = require('remote').require('app')

var file = fs.createWriteStream(app.getDataPath() + "externalFiles/file.jpg");
var request = http.get("http://url-to-api/some-image.jpg", function(response) {
  response.pipe(file);
});

您可以使用App Data Path来存储文件。当然,您必须从URL解析文件的名称,然后就可以开始了。

您也可以使用网页内容

https://github.com/atom/electron/blob/master/docs/api/web-contents.md

然后您的应用将作为浏览器工作,并且必须使用本地存储或其他技术添加离线支持。

<强>更新

今天有几个可以帮助解决此问题的软件包https://github.com/sindresorhus/electron-dl