ng Cordova file_uri к base64

0

Я пытаюсь использовать плагин камеры 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
    });

  };
Теги:
ionic-framework
cordova
cordova-plugins
ngcordova

1 ответ

2
Лучший ответ

в документации указано, что вы можете просто установить целевой тип, чтобы получить правильные результаты.

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

  • 0
    Спасибо .. Как мне сделать отображение inage в моем представлении после того, как я выбрал его? .. Если мой тип назначения - файл, то я могу отображать его в представлении, если URL-адрес данных не
  • 0
    image.src = "data:image/jpeg;base64," + imageData;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню