【发布时间】:2018-04-23 08:38:36
【问题描述】:
我能够成功上传文件,但现在的问题是它不允许我两次上传同一个文件。这是我的代码:
<input type="file" (change)="onFileChange($event)" name="fileUploaded" value="Choose a File" accept=".xlsx, .xlsm">
我发现 onFileChange($event) 不会触发,因为我使用的侦听器是 (change) 并且我没有更改我正在上传的文件。我能做些什么来解决我的问题?谢谢
编辑:为了说明我为什么要这样做,我想上传一个 excel 文件,然后将其内容显示到页面上。但是当我上传一个 excel 文件然后使用 ms excel 编辑其数据然后保存并再次上传时,新的编辑不会显示在页面上。该页面仍显示旧数据。
这是我的 eventHandler 代码:
data: AOA = [ [], [] ];
reader: FileReader = new FileReader();
onFileChange(evt: any) {
/* wire up file reader */
console.log("G");
const target: DataTransfer = <DataTransfer>(evt.target);
this.reader.onload = (e: any) => {
/* read workbook */
this.data = [ [], [] ];
console.log(target.types);
const bstr: string = e.target.result;
const wb: XLSX.WorkBook = XLSX.read(bstr, {type: 'binary'});
/* grab first sheet */
const wsname: string = wb.SheetNames[0];
const ws: XLSX.WorkSheet = wb.Sheets[wsname];
/* save data */
this.data = <AOA>(XLSX.utils.sheet_to_json(ws, {header: 1}));
}
this.reader.readAsBinaryString(target.files[0]);
}
【问题讨论】:
-
清除“onFileChange”函数末尾的输入
标签: angular typescript file-upload