Angular6 input上传文件时,当选择的文件名重复时,不触发change事件

it2025-05-21  14

原因是两次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).name this.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) }) }

 

最新回复(0)