角度:提交包含数据和图像的表格

时间:2019-06-10 18:10:34

标签: angular multipartform-data

我有一个模板驱动的表单,其中包含一些字段(例如,姓名,生日,地点等)。图片也应该上传。并非所有字段都是必填字段。

我尝试了formData对象。每个字段都将添加为: fileUploadForm.append('place', this.model.place); 如果场所字段具有输入,则此方法有效。如果为空,我有一个“未定义”。

使用formData对象是对的还是其他方法? 如何仅将填充的字段添加到formData对象?

export class CreateComponent implements OnInit {
model: any = {};

fileChanged(event) {
    this.file = event.target.files[0];
  }

onSubmit() {
    let fileUploadForm: FormData  = new FormData();
    fileUploadForm.append('picture', this.file);
    fileUploadForm.append('name', this.model.name);
    fileUploadForm.append('birthday', this.model.birthday);
    ...
 this.CreateService.setData(fileUploadForm)
    .subscribe(
    ...
}

}

1 个答案:

答案 0 :(得分:0)

您可以使用if语句,例如if (this.file) fileUploadForm.append('picture', this.file);。最好的方法是使用角反应形式检查此slackblitz示例angular reactive form