0

Versuchen Sie, ein Bild zu machen und laden Sie es auf Firebase-Speicher.Firebase-Image-Upload fehlgeschlagen mit ionic 3

Hier ist mein Code;

import { Camera, CameraOptions } from '@ionic-native/camera'; 

    async takePhoto() { 


try{ 
    const options: CameraOptions = { 
     quality: 50, 
     targetHeight: 600, 
     targetWidth: 600, 
     destinationType: this.camera.DestinationType.DATA_URL, 
     encodingType: this.camera.EncodingType.JPEG, 
     mediaType: this.camera.MediaType.PICTURE 

    } 

    const result = await this.camera.getPicture(options); 

    const image= `data:image/jpeg;based64,${result}`; 

    const pictures=storage().ref(`ProfilePictures/${this.myUid}`); 
    pictures.putString(image, `data_url`); 

    } 

    catch(e) { 
    console.error(e); 

    } 
    } 

Aber es lädt eine Datei, die eigentlich nicht Bild ist. Und es lädt eine beschädigte Datei hoch, selbst wenn ich es herunterlade, ich kann es nicht öffnen, weil es kein Bild ist.

Hier ist mein Feuerbasis Speicher

enter image description here

Dank für das Lesen bitte helfen Sie mir

+0

Sie einen Blick auf diese Antwort nehmen: https://stackoverflow.com/questions/46787197/how-to-put-file-on-firebase- storage-in-ionic/46794190 # 46794190 – e666

Antwort

0

Das ist nicht Ihr Problem sein kann, wie es schwer zu sagen ist, was das spezifische Problem ist, aber ich habe ähnliche hatte in der Vergangenheit Probleme mit der Bild-Uploads, versuchen Sie dies:

let result = await this.camera.getPicture(options); 
result = result.replace(/(\r\n|\n|\r)/gm,""); 
const image= `data:image/jpeg;based64,${result}`; 

.replace(/(\r\n|\n|\r)/gm,"") entfernt alle Zeilenumbrüche aus die zurückgegebenen Daten.

Hoffe, das hilft.

+0

es hat nicht funktioniert, aber ich fand die Lösung. – ugrdursun

+0

Keine Probs, einen Versuch wert. –

0
takePhoto() { 


    const options: CameraOptions = { 
     quality: 50, 
     targetHeight: 600, 
     targetWidth: 600, 
     destinationType: this.camera.DestinationType.DATA_URL, 
     encodingType: this.camera.EncodingType.JPEG, 
     mediaType: this.camera.MediaType.PICTURE 
    } 

    this.camera.getPicture(options).then((imageData) => { 
     let base64Image = 'data:image/jpeg;base64,' + imageData; 
     const pictures=storage().ref(`ProfilePictures/${this.myUid}`); 
     pictures.putString(base64Image, `data_url`); 



    }, (err) => { 

     }).present(); 
    }); 

    } 

das ist die Art und Weise gelöst ich das Problem