Как стереть данные формы после загрузки - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть метод загрузки, который отлично работает, но я пытаюсь изменить его так, чтобы после завершения загрузки данные формы были удалены. В частности, я пытаюсь избавиться от имени файла после загрузки (неправильный .png), но я хочу убедиться, что, если я нажму кнопку загрузки еще раз, не останется следов последнего файла.

Я пытался использовать formData.reset () и установить file = null в угловых значениях, но ни один из них не работал.

enter image description here

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,
    });

1 Ответ

0 голосов
/ 20 апреля 2019

Если вы хотите, чтобы выбранный файл исчез после выполнения вашего запроса 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
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...