原因是两次input的value值相等了
解决办法就是在获取了文件对象后,将事件的target.value赋值为空,即 event.target.value = ""
html
<button type="button" (click)="uploadFile()">上传</button><input type="file" name="file" id="file"(change)="onFileSelect($event)" accept=".xlsx,.xls"/>
ts文件,
onFileSelect(event) {if (event.target.files.length == 1) {this.fileName = event.target.files.item(0).namethis.file = event.target.files.item(0)event.target.value = "" //解决重复选择同一个文件无法触发的change事件} else {console.log("No file select!")}}uploadFile() {this.service.uploadFile(this.file).then(res => {this.notice = { type: 'success', title: `${this.fileName}上传成功` };}).catch(err => {console.log(err.message)})}