Ribbit.work

【Electron】URLからファイルをダウンロードする

JavaScript

last modified date2021-9-14

publish date2021-8-15

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

この記事をシェア

この記事を読んだ方におすすめの記事

kuromoji.jsで形態素解析
2021-12-4

kuromoji.jsで形態素解析

TypeScriptJavaScript
レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】
2021-12-4

レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】

JavaScriptKintone
レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】
2021-11-29

レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】

JavaScriptKintone
スライダーを使って数値を設定できるKintoneプラグイン【無料公開】
2021-11-26

スライダーを使って数値を設定できるKintoneプラグイン【無料公開】

KintoneJavaScriptTypeScript

最新の記事

kuromoji.jsで形態素解析
2021-12-4

kuromoji.jsで形態素解析

TypeScriptJavaScript
レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】
2021-12-4

レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】

JavaScriptKintone
レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】
2021-11-29

レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】

JavaScriptKintone
スライダーを使って数値を設定できるKintoneプラグイン【無料公開】
2021-11-26

スライダーを使って数値を設定できるKintoneプラグイン【無料公開】

KintoneJavaScriptTypeScript