質問: list[i].split(','); // 読み込み後の処理 console.log("1つ目:" + result[i][0]); console.log("2つ目:" + result[i][1]); console.log("3つ目:" + result[i][2]); } } ``` これを実行すると、 **「読み込み失敗_onerror:5」**がログに出力されます。(他のところではエラーはでません) ネット上を調べたところ、 FileReaderのエラーコードが5のとき、ENCODING_ERRとのことで、 「サイズ制限がオーバーしている」または「エンコードに失敗している」との記載がありました。 試しに、小さいサイズ(14KB程度)のファイルを用意したところ、正常に読み込めますが、 大きいサイズ(15MB程度)のファイルはエラーとなることはわかっています。 また、小さいサイズのファイル内容をエラーになるサイズになるまでコピーしたファイルを用意して 試してみたところ、同じ個所でエラーとなりました。 なので、「エンコードで失敗」とは考えにくいと思っております。 そもそもFileReaderを使った時、読み込めるファイルのサイズ制限があるのでしょうか? 探してみたのですが、見つけられませんでした。 サイズ制限があるとして、その制限を解除、または上限を設定する方法はありますでしょうか? なお、業務アプリのため、ダウンロードするファイルを分割することはできませんが、 やはりサイズを小さくする方法しかないのでしょうか?
回答: 大きいサイズのファイルも読み込めた、という意味で、自己解決しました。 (プログラム自体をあまり理解していないのですが・・・) ``` // データファイルダウンロード var fileTransfer = new FileTransfer(); fileTransfer.download( uriData, fileURLData, function (downloadFile) { downloadFile.file( function(file){ // --------------------ここから $(function () { $.ajax({ url:downloadFile.toURL(), // ダウンロードしたファイルの実際の場所 success: function(data){ // 読み込み成功時の処理 importDownloadFile(data); } }); }); // --------------------ここまで /** ダメだったやつ var reader = new FileReader(); reader.onload = function() { // 読み込みが成功した時に動かす処理 console.log("読み込み成功_onload"); // 読み込み成功時の処理 importDownloadFile(this.result); }; reader.onerror = function(){ // 読み込みが失敗した時に動かす処理 console.log("読み込み失敗_onerror:" + reader.error.code); // ここのメッセージがでる }; reader.readAsText(file); // 読込実行 **/ }, function(error){ console.log("readFileData download : " + error.message); } ); }, function (error) { console.log("download error message : " + error.message); }, false, // { // } ); ``` 修正後、サイズを30MBにしたファイルを用意して確認しましたが、正常に読み込めましたことも 併せてご報告します。 ※ファイルサイズの制限については、調べきれていません・・・。 なお、プログラム自体は独学なため、これよりももっといい方法・記述の仕方がありましたら、 コメントくださると嬉しいです。