2016-09-26 5 views
3

FormDataオブジェクトをAngularJsの$http経由で投稿しようとしています。Angular/Cordovaを使用してファイルをアップロードしています

ブラウザでは、input[type=file]のファイルの値をFormDataに追加し、$httpを介して投稿することができます。次のようなものがあります。

formData.append('file', inp.files[0], 'nai.jpg'); 
formData.append('text', 'hello'); 
$http.post('url', formData, { 
    transformRequest: angular.identity, 
    headers: { 'Content-Type': undefined } 
}); 

サーバーには2つの本文フィールドがあります。しかし、コルドバのアプリでは、input[type=file]は利用できないので、私はこのようなネイティブプラグインによって、ユーザからfileURIを取得することができます。今すぐ

navigator.camera.getPicture(function(fileURI) { 
    // i got fileURI 
}); 

、私はformDataにファイルとしてfileURIを置くことができる方法を私に説明し、$httpプロバイダがそれを送ってください(FileTransferではなく)角度の

答えて

0

コンフィギュレーションオブジェクトにオプションを指定すると、Cordovaはイメージのbase64データも提供します。同じbase64データをサービスに渡すことができます。

var cameraOptions = { 
    destinationType : 0 /*(DATA_URL -- For base64 data)*/ 
} 
navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions); 
+0

thx。はい、この方法は重すぎます。私がそれを提出する前に、JavaScriptの変数に5MBの文字列を保持する必要があると想像してください。 – Nainemom

関連する問題