У меня есть метод загрузки, который отлично работает, но я пытаюсь изменить его так, чтобы после завершения загрузки данные формы удалялись. В частности, я пытаюсь избавиться от имени файла после загрузки (wrong.png), но я хочу убедиться, что если я снова нажму кнопку «Загрузить», не останется следов последнего файла.
Я попытался использовать formData.reset() и установить файл = null в angular, но ни один из них не работал.
HTML
<h1>Upload new file (.png or .jpg)</h1>
<input #file type = "file" multiple (change) = "upload(file.files)" />
УГЛОВОЙ
upload(files) {
if (files.length === 0)
return;
const formData = new FormData();
for (let file of files) {
formData.append(file.name, file);
}
const uploadReq = new HttpRequest('POST', `/api/FileUpload`, formData, {
reportProgress: true,
});
Вы хотите, чтобы тест "wrong.png" исчез после того, как ваш пост будет готов?
Обратная связь по добавленным ответам, заданным комментариям всегда приятна и весела.





Если вы хотите, чтобы выбранный файл исчез после выполнения вашего POST-запроса, установите значение ввода типа файла как null. Вы можете передать свою наблюдаемую и использовать tap() для достижения этого.
@ViewChild('file') file;
upload(files) {
if (files.length === 0)
return;
const formData = new FormData();
for (let file of files) {
formData.append(file.name, file);
}
const uploadReq = new HttpRequest('POST', `/api/FileUpload`, formData, {
reportProgress: true,
}).pipe(tap(_ => {
this.file.nativeElement.value = null
});
}
Можете ли вы уточнить, когда вы говорите, что при повторном нажатии не остается следов последнего файла, что вы имеете в виду? Где последний файл должен быть не виден?