首页 > 解决方案 > 为什么我需要上传我的文件两次才能将其放入数据库?

问题描述

所以基本上我正在处理一个接受.csv并将其存储在localStorage(没有服务器,本地解决方案)的文件上传 - 一切正常,但我总是需要上传一个文件两次才能将它放在我的localStorage中,有时它' s 第一次工作,有时不工作。

还有一件奇怪的事情是,当我路由到不同的位置并上传文件一切正常时,问题只出现在我的“概览”中 - 将显示数据。

我的模板:

  <input type="file" #csvReader name="Upload CSV" id="txtFileUpload" 
  (change)="uploadListener($event)" accept=".csv" class="inputfile" />

  NEW FILE

  </label>

和我的 TS:

  uploadListener($event: any):void {  

    this._dataService.initializeDB($event);

  }

数据服务.ts:

 initializeDB($event: any){

  this.students = [];
  localStorage.removeItem('students');

        let files = $event.srcElement.files;  

  if (this.isValidCSVFile(files[0])) {  

    let input = $event.target;  
    let reader = new FileReader();  
    reader.readAsText(input.files[0],'ISO-8859-1');  

    reader.onload = () => {  
      
      let csvData = reader.result;  
      
      let csvRecordsArray = (<string>csvData).split(/\r\n|\n/);  

      let headersRow = this.getHeaderArray(csvRecordsArray);  

      this.getDataRecordsArrayFromCSVFile(csvRecordsArray, headersRow.length);  
    };  

 
}

标签: angulartypescript

解决方案


推荐阅读