我得到一个字符串或一个文件。然后,将此(image | file)转换为文件,如果它已经存在,则将其保留。在我的应用程序中,该文件的上传位于下一页,因此我将其存储在本地的ionic/storage
中。这是当我记录我的imageFile并获得此数据集(即文件)时:
然后在下一页上,我从存储中检索文件,并将其patchValue转换为具有其他信息的表单。提交表单时,我还会获得File结构的图像值。表单应该上传到我收到此错误的api:
提交的数据不是文件。检查编码类型 表格
奇怪的是,它说我的控制台正在记录其文件。 我用httpHeaders'multipart / form-data'尝试过,但是效果也不好。
这是该问题的重要代码
uploadService.ts
// where I declare the credentials (src: File didn't work as well
uploadPost(src: string, cat: string, on: number, an: number, lock: boolean) {
return this.http.post<any>(`{this.url}/posts/`, {src, cat, on, an, block});
}
}
submit.page.ts在进入该页面之前,我先得到一张图片,将其转换为文件,然后存储(全部有效)
this.storage.get('image_data').then((imageFile) => {
console.log(imageFile)
this.categoryForm.patchValue({
image: this.storage.get('image_data')
});
...
//form that is uploaded but this is working and image is also a file here
...
apiSubmit() {
console.log('logged')
this.submitted = true;
if (this.categoryForm.invalid) {
return;
}
this.isLoading = true;
this.loadingEl.present();
this.uploadService.uploadPost(
this.f.image,
this.f.cat,
this.f.on,
this.f.an,
this.f.lock
)
.pipe(tap(x => this.loadingEl.dismiss())
)
.subscribe(
data => {
this.router.navigate(['one']);
},
error => {
this.error = error;
}
);
}