Как конвертировать Base64 в Image Object в Ionic 3? - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь загрузить изображение в Ionic 3 , но я получил изображение в Base64, поэтому я хочу преобразовать его в объект файла изображения.

Как мне конвертировать?

Вот мой код компонента

    this.camera.getPicture(options).then((imageData) => {
      let base64Image = 'data:image/jpeg;base64,' + imageData;
      this.profilePhoto['profile_photo'] = base64Image;
      let formData = new FormData();

      let blob: Blob = this.utilService.convertBase64ToImage(base64Image);
      let file = new File([blob], this.utilService.newGuid() + '.jpg', { type: 'image/jpeg' });
      let newFileObj = this.utilService.convertFileObject(file);

      formData.append('profile_photo', newFileObj);
      this.updatePhoto(formData);
    }, (err) => {
      console.log(err);
    });

с этим кодом я не получил объект изображения, такой как web , так как конвертировать этот base64 в объект изображения, такой как Web

1 Ответ

0 голосов
/ 30 августа 2018

Можете ли вы попробовать что-то вроде этого? Если вы конвертировали base64 в Blob правильно, вы сможете поместить BLOB-объект непосредственно в FormData (не нужно конвертировать в File). Затем загрузите в свой API.

let blob: Blob = this.utilService.convertBase64ToImage(base64Image);
await this.uploadImage(blob);

uploadImage(imageBlob: Blob, fileName = "imageUpload.png") {

  let p = new Promise<void>((resolve, reject) => {

    let formData: FormData = new FormData();
    formData.append('uploadFile', imageBlob, fileName);

    let params = new HttpParams();

    this.httpClient.post('http://YOUR_API_HERE', formData,        
      {
        responseType: 'text', //Empty response is expected, no JSON
      })
      .subscribe(
        data => {
          // We don't care what we get back here...
          resolve();
        },
        error => {
          //We didn't get data back
          console.log("Error submitting image upload")
          let e = new Error("Error uploading an image");
          reject(e);
        });
  });

  return p;
}
...