2015-04-29 3 views
0

У меня проблема с ios и ngcordova fileupload. Как-то я получаю код ошибки 1 в ios, но я не знаю почему.Ngcordova fileupload camera ios код ошибки 1

Это где я получить изображение с камеры

$scope.getPictureFromCamera = function(){ 
    var options = { 
     quality: 50, 
     destinationType: Camera.DestinationType.DATA_URL, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     allowEdit: false, 
     encodingType: Camera.EncodingType.JPEG, 
     targetWidth: 1000, 
     targetHeight: 1000, 
     correctOrientation: true, 
     popoverOptions: CameraPopoverOptions, 
     saveToPhotoAlbum: true 
    }; 

    $cordovaCamera.getPicture(options).then(function(imageURI){ 
     $scope.displayURL = "data:image/jpeg;base64," + imageURI; 
     $scope.pictureURL = "data:image/jpeg;base64," + imageURI; 
    }, 
    function(error){ 
     console.log(error); 
    }); 
} 

Это где я загрузить изображение на моем сервере

createPostWithPicture: function(post, pictureURI){ 

     var url = domain+'/api/v1/statuses/create'; 
     var filePath = pictureURI; 
     var options = { 
      "fileKey": "sphoto", 
      "mimeType": "image/jpeg", 
      "params": post 
     } 

     return $cordovaFileTransfer.upload(url, filePath, options); 
    }, 

В Android все работает нормально. В IOS я получаю сообщение об ошибке со следующим сообщением:

FileTransferError { code = 1; source = data:image/jpeg;base64,.... 

Я действительно не могу найти решение. Помощь была бы потрясающей!

ответ

0

Кажется, что IOS хочет Camera.DestinationType быть FILE_URL. Поэтому я изменил свою функцию на

$scope.getPictureFromCamera = function(){ 
    var options = { 
     quality: 50, 
     destinationType: Camera.DestinationType.FILE_URL, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     allowEdit: false, 
     encodingType: Camera.EncodingType.JPEG, 
     targetWidth: 1000, 
     targetHeight: 1000, 
     correctOrientation: true, 
     popoverOptions: CameraPopoverOptions, 
     saveToPhotoAlbum: true 
    }; 
    if(device.platform == "Android"){ 
     options.destinationType = Camera.DestinationType.DATA_URL; 
    } 

    $cordovaCamera.getPicture(options).then(function(imageURI){ 
     if(device.platform == "Android"){ 
      $scope.displayURL = "data:image/jpeg;base64," + imageURI; 
      $scope.pictureURL = "data:image/jpeg;base64," + imageURI; 
     } else if(device.platform == "iOS"){ 
      $scope.displayURL = imageURI; 
      $scope.pictureURL = imageURI; 
     } 
    }, 
    function(error){ 
     console.log(error); 
    }); 
} 
Смежные вопросы