通过httpClient上传图像离子

时间:2018-03-10 14:19:37

标签: ionic-framework ionic2 ionic3

我的背影看起来像这样。后端需要一个文件和2个字符串参数

@multipart/form-data
file: File,
title: string,
content: string

我曾经用来选择文件,然后通过httpClient和formData

将其上传到服务器
  const formData = new FormData();
    formData.append('title', form.value.title);
    formData.append('content', form.value.description);
    formData.append('file', this.img);

this.http.post(this.apiUrl + '/img', formData, settings);

一切正常。

但现在我决定不再使用了。我决定使用原生相机

getPictureFromCamera() {
    return new Promise((resolve, reject) => {
      const options: CameraOptions = {
        quality: 100,
        destinationType: this.camera.DestinationType.FILE_URI,
        encodingType: this.camera.EncodingType.JPEG,
        mediaType: this.camera.MediaType.PICTURE
      }

      this.camera.getPicture(options).then((imageData) => {

        let base64Image = null;

        //get photo from the camera based on platform type
         base64Image = normalizeURL(imageData);
        resolve(base64Image);

      }, (error) => {
        console.debug("Unable to obtain picture: " + error, "app");
        reject(error);
      });
    })

  }

我成功拍摄并显示照片。问题是我的函数只返回图像的路径(而不是文件)。如何获取实际文件,以便我可以使用form-data和httpClient将其发布到我的服务器。

我想使用旧的formdata函数,所以我只需要一个文件。有没有办法我只从imgPath获取文件。

注意:当我记录' base64Image' (你可以在上面的代码中看到)

http://localhost:8080/var/mobile/Containers/Data/Application/85D7DD14-849C-4ADE-9005-D8165CC2A55B/tmp/cdv_photo_001.jpg

0 个答案:

没有答案