发送带有文件的表单数据时我做错了什么

时间:2019-04-20 09:18:42

标签: angular

在以下版本中,我正在发送数据。该文件未发送。

When I console.log data

onSubmit() {
    const fd = new FormData();
    fd.append('resume', this.chosenFile);
    const data = this.contactForm.value;
    data['resume'] = fd;
    console.log(data);
    this.loading = true;
    this.data.createJobEnquiry(data).subscribe((res)=>{
      this.loading = false; 
    },(err)=>{
      this.loading = false; 
      console.log(err)
      alert("Something went wrong");
    });
  }

在下面的代码中,我仅发送文件即fd,并且将其发送出去。

onSubmit() {
    const fd = new FormData();
    fd.append('resume', this.chosenFile);
    this.loading = true;
    this.data.createJobEnquiry(fd).subscribe((res)=>{
      this.loading = false; 
    },(err)=>{
      this.loading = false; 
      console.log(err)
      alert("Something went wrong");
    });
  }

HTML:

 <input formControlName="resume" type="file" id="real-file" (change)="onFileSelected($event)" style="display: none;">

我如何获取文件。我可以正确获取文件,所以在那里没有问题。

onFileSelected(event) {
  this.chosenFile = <File>event.target.files[0];
}

在第一个错误中,它给出错误“需要继续”,因此根本不发送该错误;在第二个错误中,该文件正确发送,没有错误,服务中不能有错误。这是我为简历字段分配文件的方式。

this.contactForm.value是包含所有表单数据的对象,包括简历字段,该简历最初仅具有文件路径。 这里data ['resume'] = fd;我只是将文件分配给该简历字段。我知道错误在某处,我可能未正确执行。 如果我使用硬编码data['resume'] = "dd",则服务器中的错误仅是pdf文件,这进一步表明使用数据时我没有正确发送文件。

0 个答案:

没有答案