0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Electronをバージョンアップしたらwindowsで4G以上のファイルが読み込めなくなった話

0
Posted at

electron6系から8系へバージョンアップした際に、4G以上の大きいサイズのファイルにおいて、ビルド後ローカルファイルが読み込めなくなりました(windowsのみ。ローカル起動では可能)
Mac OSでは読み込みが可能でした
どこにも情報が無く数週間悩んだのでまとめてみました

環境

  • electron バージョン: electron 8.3.1
  • OS: windows10 64bit
  • ビルド: electron-builder 22.1.0

XMLHttpRequest (XHR) 通信でローカルファイル読み込み

期待する値

  • readyState=4(DONE)になる
  • onloadイベントが発火

実際の値

  • readyState=3(LOADING)のまま
  • onprogress でずっと読み込み中 (totalの値まで到達してもonloadが呼ばれない)
  • ontimeoutも発火せず...

対応

  • 32bit アプリを 64bit に変更(electron-builderにて、ビルドの引数を変更した)
    • 「electron-builder build --win --ia32」 -> 「npm run obfuscation && electron-builder build --win --x64」

補足(XMLHttpRequestで通信エラーになっているときの判定)

  • totalフィールド: 全転送バイト数
  • loadedフィールド: これまで転送されたバイト数
  • 通信エラーになっている時以下になっている(全体の長さが不明の状態)
    • total = 0
    • lengthComputable = false
xhr.js
// データ受信中のイベント
var xhr = new XMLHttpRequest();
xhr.onprogress = function (oEvent) {
    if (oEvent.lengthComputable || xhr.total !== 0) {
        var percentComplete = oEvent.loaded / oEvent.total * 100;
        // ...
    } else {
        // 全体の長さが不明なため、進捗情報を計算できない
    }

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?