问题:第一次选择文件或每次都选择不同文件时好使,但如果我两次都选择同一个文件,就触发不了了;
解决:将value置为空,就解决了。
importMetaDataObject(e: any): void {
if (!window.FileReader) {
this.$notify.error('您的浏览器不支持FileReader!请升级浏览器');
return;
}
let reader: any = new FileReader();
const self: any = this;
reader.onload = (): any => {
const fileData = reader.result;
const wb = XLSX.read(fileData, {
type: 'binary'
});
const excelTd = wb.SheetNames.map((key: any) => XLSX.utils.sheet_to_json(wb.Sheets[key]));
const data = {
metaattrsList: excelTd[1],
metamappingList: excelTd[2],
metaObjList: excelTd[0]
};
self.http
.post('xxx/xxxx/xxx ', data)
.then((res: any) => {
if (res.statusCode == 0) {
self.$notify.success(res.repMessage);
reader = null;
self.$refs.impData.value = '';
}
});
};
reader.readAsBinaryString(e.target.files[0]);
e.target.files = null;
}