Я пытаюсь использовать плагин камеры ngCordova (http://ngcordova.com/docs/plugins/camera/), чтобы получать фотографии с моего iphone и отправлять их на мой сервер. Бэкэнд-разработчик хочет, чтобы я закодировал его на base64. моя модель данных выглядит так:
[{image_name:"foo", link: //base64 string}]
это мой код выглядит так:
$scope.getPictureFromGallery = function() { $cordovaCamera.getPicture(options).then(function(imageURI) {
$scope.image = imageURI;
}, function(err) {
// error
});
};
в документации указано, что вы можете просто установить целевой тип, чтобы получить правильные результаты.
module.controller('PictureCtrl', function($scope, $cordovaCamera) {
document.addEventListener("deviceready", function () {
var options = {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL, // <== HERE
sourceType: Camera.PictureSourceType.CAMERA,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 100,
targetHeight: 100,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false
};
$cordovaCamera.getPicture(options).then(function(imageData) {
var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData; // <== HERE is how you create the actual string to send to server
}, function(err) {
// error
});
}, false);
});
У меня есть полный рабочий пример здесь https://github.com/aaronksaunders/dcww/blob/master/www/js/services.js#L39
image.src = "data:image/jpeg;base64," + imageData;