在电子应用程序中下载和存储文件
Download and store files inside electron app
我正在开发一个应用程序,第一个 运行 必须通过 API 从网络下载文件(图像 jpg/png),然后将其存储在本地以便在线不再需要连接(如果有可用的更新,用户可以 运行 在线更新并通过 api 下载更新的数据)。
我知道桌面应用程序的工作方式非常不常见,但主要目标是将桌面应用程序数据与网络应用程序同步。
到目前为止,我找到了一个 npm 插件 request
(link) 来检查用户是否连接到互联网。
我不确定是否可以在 electron 应用程序中下载和存储文件(因此它在应用程序之外是不可见的)?你能推荐必要的插件/工具来实现这个目标吗?
任何帮助将不胜感激。
好吧,您可以使用 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
我正在开发一个应用程序,第一个 运行 必须通过 API 从网络下载文件(图像 jpg/png),然后将其存储在本地以便在线不再需要连接(如果有可用的更新,用户可以 运行 在线更新并通过 api 下载更新的数据)。
我知道桌面应用程序的工作方式非常不常见,但主要目标是将桌面应用程序数据与网络应用程序同步。
到目前为止,我找到了一个 npm 插件 request
(link) 来检查用户是否连接到互联网。
我不确定是否可以在 electron 应用程序中下载和存储文件(因此它在应用程序之外是不可见的)?你能推荐必要的插件/工具来实现这个目标吗?
任何帮助将不胜感激。
好吧,您可以使用 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