Upload image content from camera to file

I take a picture (or choosing from a library) using the phonegap API using the following drictive:

MyApp.directive('Camera', function () { return { restrict: 'A', require: 'ngModel', link: function(scope, elm, attrs, ctrl) { elm.bind('click', function() { navigator.camera.getPicture(function (imageURI) { scope.$apply(function() { ctrl.$setViewValue(imageURI); }); }, function (err) { ctrl.$setValidity('error', false); }, //Options => http://docs.phonegap.com/en/2.6.0/cordova_camera_camera.md.html#Camera { quality: 50, destinationType:Camera.DestinationType.FILE_URI }) }); } }; }); 

Which returns me a URI that looks using a chokeberry emulator on chrome that I don't see when pasting this URI.

 blob:http%3A//localhost%3A8080/8e18de30-d049-4ce2-ae88-8500b444581e 

My problem is loading this URI

 $scope.updateUserProfile = function (user) { var myPicfile = $http.get(user.myPicture); dataService.uploadPicture . . . some code to update the picture to Parse } 

* Note: I cannot use filegansfer phonegap with parse.com:

When I do this, I get:

enter image description here

I am making a request:

uploadPicture: uploadPicture function (user, callback) {var serverUrl = ' https://api.parse.com/1/files/ ' + user.Nick;

  $http({ method: 'POST', url: serverUrl, data: user.myPicture, headers: {'X-Parse-Application-Id': PARSE_APP_ID, 'X-Parse-REST-API-Key': PARSE_REST_API_KEY, 'Content-Type': 'text/plain' } }) 

Any idea on how to get the contents of the image into a file, which I can then happily upload to Parse.com?

Thanks!

+6
source share
1 answer

I am finally working on this, since my ultimate goal was to use it with telephone communications, with the information in this message ., Many thanks to Raymond Camden!

 function gotPic(data) { window.resolveLocalFileSystemURI(data, function(entry) { var reader = new FileReader(); reader.onloadend = function(evt) { var byteArray = new Uint8Array(evt.target.result); var output = new Array( byteArray.length ); var i = 0; var n = output.length; while( i < n ) { output[i] = byteArray[i]; i++; } var parseFile = new Parse.File("mypic.jpg", output); parseFile.save().then(function(ob) { navigator.notification.alert("Got it!", null); console.log(JSON.stringify(ob)); }, function(error) { console.log("Error"); console.log(error); }); } reader.onerror = function(evt) { console.log('read error'); console.log(JSON.stringify(evt)); } entry.file(function(s) { reader.readAsArrayBuffer(s); }, function(e) { console.log('ee'); }); }); } 
+3
source

Source: https://habr.com/ru/post/943960/


All Articles