【Electron】URLからファイルをダウンロードする
#JavaScript
にメンテナンス済み
electron には、URL からファイルをダウンロードするモジュールを持っていません。
https や request のような別のモジュールを活用することで、ファイルのダウンロード自体は実現することができますが、ダウンロードの進捗を出したり、同時に複数のダウンロードを管理するとコードが複雑になってしまいます。
そういった問題を、electron-dlが解決してくれるようです。
実行環境
使用した環境は以下の通り。
Node.js | 14.15.0 |
npm | 6.14.9 |
electron-dl の読み込み
npm i -D electron-dl
使い方
使用する際は次のように指定します。
const { download } = require('electron-dl');
await download(
window, // electronのwindow
url, // ダウンロード対象のURL
{
directory: '保存先のパス',
filename: '保存するファイル名',
}
);
使用例
画面からの”download”をトリガーにして、ファイルをダウンロードするサンプルです。
const { app, BrowserWindow, ipcMain } = require('electron');
const { download } = require('electron-dl');
let mainWindow;
function createWindow() {
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
},
width: 800,
height: 600,
});
mainWindow.loadFile('index.html');
}
app.on('ready', createWindow);
ipcMain.on('download', async (event, props) => {
await download(mainWindow, props.url, {
directory: props.directory,
filename: props.name,
});
});