如何在html和typescript中一行导入同一文件两次?
我在html文件中有一个输入元素,如下所示:如何在html和typescript中一行导入同一文件两次?,html,typescript,Html,Typescript,我在html文件中有一个输入元素,如下所示: <input type="file" (change)="receiveFile($event)" id="inputFileButton" hidden /> receiveFile($event) { const fileFromHtml = $event.target.files[0]; const importedFile: FormData = new FormData(); imp
<input
type="file"
(change)="receiveFile($event)"
id="inputFileButton"
hidden
/>
receiveFile($event) {
const fileFromHtml = $event.target.files[0];
const importedFile: FormData = new FormData();
importedFile.append('positions', fileFromHtml);
this.store.dispatch({
type: '[Position] Import Positions',
importFile: importedFile,
positionSetId: this.positionSetId,
accountSetId: this.accountSetId,
});
}
uploadFile() {
this.testvar = !this.testvar;
const element: HTMLElement = document.getElementById(
'inputFileButton',
) as HTMLElement;
element.click();
}
除了我想连续导入同一个文件两次之外,它工作正常。第二次它在所有receiveFile($event)上都不调用。您的receiveFile()函数只在更改事件上运行。如果输入相同的文件,则没有任何更改,因此它不会运行
要克服这个问题,您可以尝试清除输入
document.getElementById("inputFileButton").value = ''
receiveFile()函数仅在更改事件上运行。如果输入相同的文件,则没有任何更改,因此它不会运行
要克服这个问题,您可以尝试清除输入
document.getElementById("inputFileButton").value = ''
因为您的文件没有更改。为什么希望代码重新运行?目的是什么?因为当我导入一个文件时,我会从中获取一些数据,下一次我还想从文件中获取数据,不管它是否重复。也许有一种方法可以重新启动输入字段idkYou可以在调用之间重置输入。或者只是链接逻辑而不依赖于另一个单击如何重置它:)或者使用
输入事件,因为您的文件没有更改。为什么希望代码重新运行?目的是什么?因为当我导入一个文件时,我会从中获取一些数据,下一次我还想从文件中获取数据,不管它是否重复。也许有一种方法可以重新启动输入字段idkYou可以在调用之间重置输入。或者直接链接逻辑而不依赖另一个单击如何重置:)或者使用输入事件?