当前位置: 首页 > 知识库问答 >
问题:

下载和存储电子应用程序内的文件

轩辕煜
2023-03-14

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

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

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

我不确定是否可以在electron应用程序内下载和存储文件(因此在应用程序外它将不可见)?你能推荐必要的插件/工具来实现这个目标吗?

任何帮助都将不胜感激。

共有1个答案

欧阳杰
2023-03-14

好的,您可以使用这个答案中的代码片段,并以节点方式进行。

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);
});

您可以使用应用程序数据路径来存储文件。当然,您必须从URL解析文件名,然后就可以开始了。

您也可以使用Web内容

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

然后,你的应用程序将作为浏览器使用,而离线支持则必须通过使用本地存储或其他技术来添加。

更新:

就像今天一样,有两个软件包可以帮助解决这个问题https://github.com/sindresorhus/electron-dl

 类似资料:
  • 那是外部存储代码,但我想保存在Android手机的内部存储。

  • 我正在我的应用程序中生成一个excelsheet,当生成时,它应该自动保存在任何android设备的“下载”文件夹中,所有下载通常都保存在那里。 我有以下文件保存在“我的文件”文件夹下- 导致- 更新#1:请看这里的快照。我想要的是用红色圈出的那个,如果有意义的话,您建议的内容将存储在用蓝色圈出的那个(/storage/emulated/0/download)中。请告诉我如何将文件保存在红圈即“d

  • 我是否正确理解了客户端模式的文档? 客户端模式与驱动程序在应用程序主程序中运行的集群模式相反? 在客户端模式下,驱动程序和应用程序主程序是独立的进程,因此+必须小于计算机的内存? 在客户端模式下,驱动程序内存不包括在应用程序主内存设置中吗?

  • 问题内容: 我有Java应用程序,不幸的是,它在一段时间后开始消耗大量内存。使事情复杂化的是,它不仅是Java应用程序,还是JavaFX 2应用程序。 我怀疑可能存在一些内存泄漏,甚至在底层JavaFX调用和本机库中也是如此。 理想的解决方案是在某个时刻获取所有java对象的转储(及其内存使用情况),然后分析该转储。有什么办法可以做到这一点? 问题答案: 有很多方法可以获取堆转储,从简单的工具(例