I'm using ngImgCrop plugin for image crop and post to my rest service. HTML like this:
<form>
<button class=btn btn-default fileUpload type=submit><span>from pc</span>
<input type=file
id=fileInput
class=upload
onchange=angular.element(this).scope().uploadFile(this.files[0])/></button>
<button class=btn btn-default type=submit>from camera</button>
<div class=cropArea>
<img-crop image=image.myImage result-image=image.myCroppedImage></img-crop>
</div>
<div class=hidden><img ng-src={{image.myCroppedImage}} ng-model=updatedPhoto /></div>
<div class=modal-footer>
<button type=button class=btn btn-default data-dismiss=modal ng-click=closeThisDialog(value)>Close
</button>
<button type=submit ng-click=updatePhoto() class=btn btn-primary>Save</button>
</form>
And controller.js:
$scope.updatePhoto = function () {
var updatedPhotoLink = {
file: file
};
$http({
method: 'POST',
data: updatedPhotoLink,
url: '//myapiservices.com/upload'
}).then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log(error);
// called asynchronously if an error occurs
// or server returns response with an error status.
});
}
Yes, it works but image link return to by base64 but API link want to it by file.
I tried to add for change this:
var imageBase64 = $scope.image.myCroppedImage;
var blob = new Blob([imageBase64], {type: 'image/png'});
But its not worked, image file return to blank. How can I convert base64 url to file? Thanks.