そこで、テキストファイルをアップロードするためのhtml入力要素を実装しました。次に、テキストの内容を読み取り、文字列配列に保存したいと思いました。これを行うために(私はAngular 2を使用しています)、readAsText関数を使用するためにfilereadernpmパッケージをインポートしました。今、私が初めてそれを試したとき、それはうまくいきました!それはテキストに印刷され、ファイルからコンソールに読み込まれました。
次に、console.log(line)関数を削除しました。それ以降、次のエラーが発生します:「ファイルとして読み取ることができません:{}」。console.log(line)関数を読み取ろうとしましたが、同じエラーが発生し続けます。ファイルリーダーが使用する前にファイル変数をログに記録し、ファイルに関する情報を取得しました。また、別のファイルを試し、入力をクリアしました(el.nativeElement.firstElementChild.value = null)が、それでも同じエラーです。
html:
<input hidden="true" type="file" id="fileUpload" (change)="SendSurveyDataToBackend()" [attr.multipleFiles]="multipleFiles ? true : null">
js:
SendSurveyDataToBackend(){
let inputEl = this.el.nativeElement.firstElementChild;
document.getElementById('csvUpload').style.color = "white";
if (inputEl.files.length == 0 || inputEl.files.length > 1) {
document.getElementById('csvUpload').style.color = "red";
return;
}
let file = null;
file = inputEl.files[0];
let FileReader = require('filereader');
const reader = new FileReader();
let surveyDataSetsAsStrings:string[] = [];
let surveyDataSets:SurveyData[] = [];
reader.onload = (event) => {
const file = event.target.result;
const allLines = file.split(/\r\n|\n/);
// Reading line by line
allLines.map((line) => {
surveyDataSetsAsStrings.push(line.toString)
console.log(line);
});
};
reader.onerror = (evt) => {
alert(evt.target.error.name);
};
reader.readAsText(file);
for(var i = 0; i < surveyDataSetsAsStrings.length; i++){
surveyDataSets[i].Id = parseInt(surveyDataSetsAsStrings[i].substring(0,2));
surveyDataSets[i].Date = new Date(surveyDataSetsAsStrings[i].substring(42,61));
surveyDataSets[i].PlayerCode = (surveyDataSetsAsStrings[i].substring(63,73));
}
this.el.nativeElement.firstElementChild.files = null;
this.el.nativeElement.firstElementChild.value = null;
this.dataService.updateSurveyParticipants(surveyDataSets).subscribe( response => {
if(response == 'success') // Http OK
window.location.reload();
else
document.getElementById('csvUpload').style.color = "red";
});
}
これを引き起こしている可能性のあるアイデアはありますか?
次のコード行を削除するだけでうまくいきました...
let FileReader = require('filereader');
私の悪い...それが機能した後にコードの行を変更したようです...
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加