【发布时间】:2020-07-29 14:09:23
【问题描述】:
我需要将多部分数据上传到我的 api。所以我创建了一个 FormData 以便上传。首先,我获取用户输入的所有数据,如下所示:图像(文件)、类别(字符串)。数据实际上是通过模板获取的,并存储在categoryForm: FormGroup 中。然后我想将值存储在FormData 中。但可悲的是,当我想将有效负载上传到 api 时,它会吐出以下错误:
{"src":["No file was submitted."],"tag":["This field is required."]}
当我查看控制台时,我注意到 FormData 对象实际上是空的。所以categoryForm 的值没有重新分配给formData。我认为 categoryForm 和模板没有问题,因为当我记录它们时。我得到一个带有数据的对象,当我分别记录category 和image 时,我得到了数据。
所以问题一定出在我想将categoryForm的值分配给formData的部分。你能帮我解决这个问题吗?
代码
apiSubmit() {
console.log(this.categoryForm.value) // returns values
console.log(this.categoryForm.get('category').value); // returns values
console.log(this.categoryForm.get('image').value); // returns values
const formData = new FormData();
formData.append('category', this.categoryForm.get('category').value);
formData.append('image', this.categoryForm.get('image').value);
console.log(formData); // doesn't return values
this.http.post<any>(this.url, formData, httpOptions).subscribe(
(res) => console.log(res),
(err) => console.log(err)
);
}]
控制台日志
【问题讨论】:
-
是console.log(this.categoryForm.get('image').value)的输出;在控制台日志中?
-
@Vinay 是的,它实际上是“你好”下面的日志。它的文件日志。 “你好”是类别日志。
-
为什么要在 ZoneAwarePromise 中获取文件数据?你不能像那样访问 Promise 中的数据。
标签: javascript angular typescript ionic-framework multipartform-data