Electron - 将文件下载到特定位置
- 作者: 美女你很内涵
- 来源: 51数据库
- 2022-11-03
问题描述
我需要将文件下载到我的 Electron 程序中的特定位置.
我尝试实现 此 API 但失败了.
然后我尝试实现官方API,但不知道如何实际启动下载文件.
I need to download a file to a specific location in my Electron program.
I tried implementing this API but failed.
Then I tried implementing the official API, but couldn't realize how to actually start downloading the file.
如何将文件下载到特定位置,例如 C:Folder?
谢谢!
How can I download a file to a specific location, say C:Folder?
Thanks!
推荐答案
我最终使用了 electron-dl.
发送下载请求(来自 renderer.js):
ipcRenderer.send("download", {
url: "URL is here",
properties: {directory: "Directory is here"}
});
在 main.js 中,您的代码如下所示:
In the main.js, your code would look something like this:
const {app, BrowserWindow, ipcMain} = require("electron");
const {download} = require("electron-dl");
let window;
app.on("ready", () => {
window = new BrowserWindow({
width: someWidth,
height: someHeight
});
window.loadURL(`file://${__dirname}/index.html`);
ipcMain.on("download", (event, info) => {
download(BrowserWindow.getFocusedWindow(), info.url, info.properties)
.then(dl => window.webContents.send("download complete", dl.getSavePath()));
});
});
下载完成"监听器位于 renderer.js 中,如下所示:
The "download complete" listener is in the renderer.js, and would look like:
const {ipcRenderer} = require("electron");
ipcRenderer.on("download complete", (event, file) => {
console.log(file); // Full file path
});
如果您想跟踪下载进度:
在main.js中:
ipcMain.on("download", (event, info) => {
info.properties.onProgress = status => window.webContents.send("download progress", status);
download(BrowserWindow.getFocusedWindow(), info.url, info.properties)
.then(dl => window.webContents.send("download complete", dl.getSavePath()));
});
在 renderer.js 中:
ipcRenderer.on("download progress", (event, progress) => {
console.log(progress); // Progress in fraction, between 0 and 1
const progressInPercentages = progress * 100; // With decimal point and a bunch of numbers
const cleanProgressInPercentages = Math.floor(progress * 100); // Without decimal point
});
推荐阅读
热点文章
检查拆分键盘
0
带有“上一个"的工具栏和“下一个"用于键盘输入AccessoryView
0
Activity 启动时显示软键盘
0
UIWebView 键盘 - 摆脱“上一个/下一个/完成"酒吧
0
在 iOS7 中边缘滑动时,使键盘与 UIView 同步动画
0
我的 iOS 应用程序中的键盘在 iPhone 6 上太高了.如何在 XCode 中调整键盘的分辨率?
0
android:inputType="textEmailAddress";- '@' 键和 '.com' 键?
0
禁用 iPhone 中键盘的方向
0
Android 2.3 模拟器上的印地语键盘问题
0
keyDown 没有被调用
0
