Angular - 无法解析多个文件
Angular - Parsing multiple files is not working
我正在尝试上传来自 *ngFor 块的多个文件。我无法正确解析内容
我正在使用一个数组来存储文件名,如果我再次尝试 select 一个文件,我将无法获得新的文件名
这是我的html代码
<div *ngFor="let data of fileList, let i = index">
<label class="adpLabel">{{data.fileDesc}}</label>
<input readonly type="text" value={{filename[i]}}>
<input type="file" id="{{data.fileName}}" name="{{data.lastUpdateTsFile}}"
#selectFiles hidden accept=".xls,.xlsx" (change)="getFileInfo($event, i)">
<button mat-button (click)="selectFiles.click()" class="browseBtn">Browse</button>
</div>
这是我的 component.ts 文件
export class appComponent implements OnInit {
fileType : any = [];
filename : any = [];
file : any = [] ;
getFileInfo(event, i) {
this.file.push(event.target.files);
this.fileType.push(event.target.id);
this.fileUploadDate.push(event.target.name);
for (let i = 0; i < this.file.length; i++) {
let fileName = this.file[i][0].name;
let id = this.fileType[i];
let fileDate = this.fileUploadDate[i];
let extension = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
if ( extension==".xls" || extension==".xlsx" ) {
this.filename[i] = fileName;
this.fileType[i] = id;
}
}
}
}
我希望多次浏览该文件,但我现在无法做到。
把你的ts文件改成
getFileInfo(event, i) {
if(this.file[i]){
this.file.splice(i,1,event.target.files);
this.fileType.splice(i,1,event.target.id);
}
else{
this.file[i]=event.target.files;
this.fileType[i]=event.target.id;
//this.file.push(event.target.files);
//this.fileType.push(event.target.id);
}
for (let j = 0; j < this.file.length; j++) {
let fileName:string='';
let extension:string;
if(event.target.files[j]){
fileName=event.target.files[j].name;
extension = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
}
let id:any;
if(this.fileType[j]){
id=this.fileType[j];
}
if ( extension==".xls" || extension==".xlsx" ) {
this.filename[i] = fileName;
this.fileType[i] = id;
}
}
}
我正在尝试上传来自 *ngFor 块的多个文件。我无法正确解析内容
我正在使用一个数组来存储文件名,如果我再次尝试 select 一个文件,我将无法获得新的文件名
这是我的html代码
<div *ngFor="let data of fileList, let i = index">
<label class="adpLabel">{{data.fileDesc}}</label>
<input readonly type="text" value={{filename[i]}}>
<input type="file" id="{{data.fileName}}" name="{{data.lastUpdateTsFile}}"
#selectFiles hidden accept=".xls,.xlsx" (change)="getFileInfo($event, i)">
<button mat-button (click)="selectFiles.click()" class="browseBtn">Browse</button>
</div>
这是我的 component.ts 文件
export class appComponent implements OnInit {
fileType : any = [];
filename : any = [];
file : any = [] ;
getFileInfo(event, i) {
this.file.push(event.target.files);
this.fileType.push(event.target.id);
this.fileUploadDate.push(event.target.name);
for (let i = 0; i < this.file.length; i++) {
let fileName = this.file[i][0].name;
let id = this.fileType[i];
let fileDate = this.fileUploadDate[i];
let extension = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
if ( extension==".xls" || extension==".xlsx" ) {
this.filename[i] = fileName;
this.fileType[i] = id;
}
}
}
}
我希望多次浏览该文件,但我现在无法做到。
把你的ts文件改成
getFileInfo(event, i) {
if(this.file[i]){
this.file.splice(i,1,event.target.files);
this.fileType.splice(i,1,event.target.id);
}
else{
this.file[i]=event.target.files;
this.fileType[i]=event.target.id;
//this.file.push(event.target.files);
//this.fileType.push(event.target.id);
}
for (let j = 0; j < this.file.length; j++) {
let fileName:string='';
let extension:string;
if(event.target.files[j]){
fileName=event.target.files[j].name;
extension = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
}
let id:any;
if(this.fileType[j]){
id=this.fileType[j];
}
if ( extension==".xls" || extension==".xlsx" ) {
this.filename[i] = fileName;
this.fileType[i] = id;
}
}
}