Ionic formData 追加在服务器中显示为空

Ionic formData append showing null in server

我正在尝试使用 formData 上传图像。 api 工作正常。但是数据在服务器中显示为空。 我的功能是

  capture_dl_front(){
    this.camera.getPicture(this.cameraOptions)
      .then(imageData => {
        this.customer.dl_front = normalizeURL(imageData);
        this.upload_dl_front(imageData);
      }, error => {
        this.func.showAlert('Error',JSON.stringify(error));
      });
  }
  upload_dl_front(imageFileUri: any): void {
    this.file.resolveLocalFilesystemUrl(imageFileUri)
      .then(entry => (<FileEntry>entry).file(file => this.readFile_dl_front(file)))
      .catch(err => console.log('Error',JSON.stringify(err)));
  }
  private readFile_dl_front(file: any) {
    const reader = new FileReader();
    reader.onloadend = () => {
      const imgBlob = new Blob([reader.result], { type: file.type });
      this.dl_front_imageUri = imgBlob;
      this.dl_front_imageName = file.name;
      alert(this.dl_front_imageName)
      const img = new FormData();
      img.append('image', this.dl_front_imageUri, this.dl_front_imageName)
      this.api.test(img).then(data=>alert("final: "+data))
    };
    reader.readAsArrayBuffer(file);
  }

我的api函数是

 test(image){
    let headers = new HttpHeaders({
      'Content-Type': 'application/x-www-form-urlencoded',
    });
    return new Promise( resolve => {
      this.http.post(url, image, { headers: headers})
        .subscribe(
          data => {
            resolve(data['message']);
          },
          error => {
            resolve(error.statusText);
          }
        );
    });
  }

并且我正在 laravel 服务器中获取文件作为

$image = $request->file('image');

但是我在图像参数中得到的是空值。

我做错了什么?

您应该删除 api 调用中的 headers。

 test(image){
    return new Promise( resolve => {
      this.http.post(url, image)
        .subscribe(
          data => {
            resolve(data['message']);
          },
          error => {
            resolve(error.statusText);
          }
        );
    });
  }