【发布时间】:2019-08-31 23:44:18
【问题描述】:
我想上传一个文件并创建一个我想传递给名为“uploadData”的服务器的新对象。我想从使用角度表单构建器创建的“uploadForm”对象中添加该对象中的值。但在控制台上,它只是显示“FormData{}”。
const uploadData = new FormData();
this.uploadData.append("name", this.uploadForm.value.name);
this.uploadData.append("sem", this.uploadForm.value.sem);
this.uploadData.append("subject", this.uploadForm.value.subject);
this.uploadData.append("material", this.uploadForm.value.material);
this.uploadData.append("id", this.userId);
this.uploadData.append("pdf",this.uploadForm.value.pdf, this.uploadForm.value.name);
//this.updown.upload(this.uploadData).subscribe()
console.log(this.uploadData);
表单生成器是
uploadForm = this.fb.group({
name: ['', Validators.required],
sem: ['', Validators.required],
subject: ['', Validators.required],
material: ['', Validators.required],
pdf: ['', Validators.required]
});
Pdf 是一个文件,所以:
onImagePick(event: Event){
const file = (event.target as HTMLInputElement).files[0];
this.uploadForm.patchValue({ pdf : file });
this.uploadForm.get('pdf').updateValueAndValidity();
}
【问题讨论】:
-
您使用
this.updown.upload(this.uploadData),但将其声明为const uploadData。删除this关键字,你应该没问题。 -
另一个问题是它没有在控制台上显示数据而只显示“FormData{}”
-
查看我的回答,不适合评论
-
我刚刚更新了我的问题,如果您愿意,可以查看。
-
嗯,它不能帮助我以任何方式回答你,但可以肯定!你试过我的答案了吗?
标签: angular file-upload angular6 mean-stack angular-reactive-forms