2016-07-06 14 views
0

Ich benutze cordovaCamera Plugin, um Kamera Image.this Methode ich bekam Bild als Camera.DestinationType.DATA_URL (dh Data.URL) .Hier muss ich Data.URL in File-Objekt zu konvertieren. Ich muss dieses Dateiobjekt in $ http.post Methode übergeben. Irgendwelche geben Anregung, dieses Problem zu lösen.Konvertiere Daten URL in Bild in angularjs

Antwort

0

Schritt 1:
die DATA_URL anhängen mit 'Daten: image/jpeg; base64' in der Kamera; s Erfolg Rückruf.

$cordovaCamera.getPicture(options).then(function(data) { 
    var imgURI = 'data:image/jpeg;base64,' + imageData; 
    convertToBlob(imgURI); 
    }, function(err) { 
}); 

Schritt 2
die Daten zu einem Blob Konvertieren

function convertToBlob(imgData){ 
var byteString = atob(imgData.split(',')[1]); 
var mimeString = imgData.split(',')[0].split(':')[1].split(';')[0]; 
var ab = new ArrayBuffer(byteString.length); 
var ia = new Uint8Array(ab); 
    for (var i = 0; i < byteString.length; i++) 
    { 
    ia[i] = byteString.charCodeAt(i); 
    } 
    return new Blob([ab], { 'type': mimeString }); 
} 

Schritt 3
ein Blob ist eine Datei ohne Namen. Also einfach anhängen und Sie haben eine Datei

Ich vermute, dass Sie FormData verwenden, um die Bilder an Backend zu senden? Wenn ja, dann folgendes tun:

var fdata = new FormData(); 
// blob is the output from the convertToBlob method 
fd.append('file', blob, 'a.jpg'); 
+0

Ich habe bereits versucht, oben Methode es funktioniert nicht, schließlich bekam ich genaue Antwort. Ich übermittle Data.URL direkt in $ http.post-Methode. –

Verwandte Themen