首页 > 解决方案 > 提交后如何清除FormData()

问题描述

我开发了一个文件输入。选择该文件时,将执行一个检测文件并将其发送到服务的功能。

我的问题是格式总是吸收所有选定的文件并且从不清理。也就是说,如果您选择 2 张图片,然后删除其中一张,我得到 1 张,但如果在删除一张图片后,插入另一张……我将有 3 张而不是 2 张(应该有 2 张,因为其中一张已经已删除)。问题是表单数据总是存储一切。

有没有办法在插入文件时清除格式数据?

示例 - Stackblitz

代码

  <input type="file" id="files" (change)="Add($event)">

  formData1 = new FormData();

 Add(event) {
    var anex = event.target.files;

    for (let index = 0; index < anex.length; index++) {
          this.formData1.append('file', anex[index]);
        }  

        this.sendfiles()
  }

  sendfiles(){
    console.log("Clear formdata();")
    console.log(this.formData1)
  }

标签: javascriptangulartypescriptform-data

解决方案


在添加新文件之前,您应该将您的 formData 清除为新实例。

 Add(event) {
    var anex = event.target.files;
    // Clear form data before appending new ones
    this.formData1 = new FormData();

    for (let index = 0; index < anex.length; index++) {
          this.formData1.append('file', anex[index]);
        }  

        this.sendfiles()
  }

推荐阅读