【问题标题】:My object "uploadData" not showing information passed to it and just showing "FormData{}" on the console我的对象“uploadData”没有显示传递给它的信息,只是在控制台上显示“FormData{}”
【发布时间】: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


【解决方案1】:

您使用this.updown.upload(this.uploadData),但将其声明为 const uploadData。删除 this 关键字,你应该没问题。

对于另一个问题,FormDatas 是不可变的,这意味着 append 返回一个新的 Form Data 实例。

尝试使用此代码:

const uploadData = new FormData()
    .append("name", this.uploadForm.value.name)
    .append("sem", this.uploadForm.value.sem)
    .append("subject", this.uploadForm.value.subject)
    .append("material", this.uploadForm.value.material)
    .append("id", this.userId)
    .append("pdf",this.uploadForm.value.pdf, this.uploadForm.value.name);

    //this.updown.upload(this.uploadData).subscribe()
    console.log(this.uploadData);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    相关资源
    最近更新 更多