2016-07-06 7 views
0

カメラの画像を取得するためにcordovaCameraプラグインを使用しています。Camera.DestinationType.DATA_URL(つまりData.URL)として画像を取得しました。ここでData.URLをFileオブジェクトに変換する必要があります。このファイルオブジェクトを$ http.postメソッドに渡す必要があります。この問題を解決するための提案はあります。データURLをangularjsの画像に変換します

答えて

0

ステップ1:
のデータ:画像/ JPEG; base64で、 'でDATA_URLを追加し、あなたのカメラで; sの成功コールバック。

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

ステップ2

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 }); 
} 

ステップ3
ブロブはない名前のファイルであるblobにデータを変換します。だからちょうどそれを追加してファイルがあります

私はあなたがバックエンドに画像を送信するFormDataを使用していると思いますか?はいの場合は、次のようにしてください:

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

私は既に上記の方法を試してみましたが、うまくいきませんでした。私はData.URLを$ http.postメソッドに直接渡しています。 –

関連する問題