提交表格后,转换后的文件不再是文件

时间:2019-12-09 16:41:03

标签: javascript angular typescript forms ionic-framework

我得到一个字符串或一个文件。然后,将此(image | file)转换为文件,如果它已经存在,则将其保留。在我的应用程序中,该文件的上传位于下一页,因此我将其存储在本地的ionic/storage中。这是当我记录我的imageFile并获得此数据集(即文件)时:enter image description here

然后在下一页上,我从存储中检索文件,并将其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;
      }
    );
    }

0 个答案:

没有答案