I’m creating a form to add new users. In this form I want that user choose your perfil image and after send fields and image to webservice by POST. I can get the image but the image not returns with name, the return is: localURL: "content://media/external/images/media/8018"
. I want that the image returns with your name to make POST.
How could I do this ?
template
<ion-content>
<form name="User">
<div>
<img ng-src="img/ionic.png" id="smallimage" width="150" heigth="150">
<input type="file" ng-model="User.imageFile" size="30" id="imageFile" required="true"/>
<button class="button button-stable" ng-click="selectImage();">Imagem</button>
</div>
<div class="list list-inset">
<label class="item item-input">
<input type="text" placeholder="Nome" ng-model="User.nome" required="true">
</label>
<br/>
<label class="item item-input">
<input type="email" placeholder="Email" ng-model="User.email" required="true">
</label>
<br/>
<label class="item item-input">
<input type="password" placeholder="Senha" ng-model="User.senha" ng-minlength="8" maxlength="8"
required="true">
</label>
<br/>
</div>
</form>
<button type="button" class="button button-block button-energized"
ng-disabled="User.$invalid" ng-click="addNewUser(User);">Cadastrar</button>
</ion-content>
CameraFactory
var app = angular.module('starter');
app.factory('CameraFactory', ['$q', function($q) {
var options = {
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: 0, // 0:Photo Library, 1=Camera, 2=Saved Photo Album
}
var onSuccess = function(imageData) {
window.resolveLocalFileSystemURI(imageData, function(fileEntry) {
fileEntry.file(function(filee) {
console.log(filee);
//show: localURL: "content://media/external/images/media/8018"
});
});
var image = document.getElementById('smallimage');
var imageFile = document.getElementById('imageFile');
image.src = imageData;
imageFile.value = imageData;
};
var onFail = function(e) {
console.log("onFail! " + e);
};
return {
getPicture: function() {
return navigator.camera.getPicture(onSuccess,onFail,options);
}
}
}]);
UserCtrl
var app = angular.module("starter");
app.controller("UserCtrl", function($scope, CameraFactory, UserLoginAPI){
/** add new user */
$scope.addNewUser = function(User){
UserLoginAPI.addNewUser(User)
.success(function(data){
console.log(data);
/**
if(data.status === 2){
$ionicLoading.show({ template: data.msg, noBackdrop: true, duration: 2000 });
}
if(data.status === 1){
$ionicLoading.show({ template: data.msg, noBackdrop: true, duration: 2000 });
}
if(data.status === 0){
$ionicLoading.show({ template: data.msg, noBackdrop: true, duration: 2000 });
}*/
})
.error(function(data, status){
$ionicLoading.show({ template: APP_MESSAGES.falhaAddUsuario, noBackdrop: true, duration: 2000 });
});
};
$scope.selectImage = function() {
CameraFactory.getPicture();
};
}
make post
var app = angular.module("starter");
app.service("UserLoginAPI", function($http, AppConstants, HeaderProvider, HeaderProvider2, md5, ObjectToParamsProvider){
var _headers = HeaderProvider.getHeader();
var _headers2 = HeaderProvider2.getHeader();
this.addNewUser = function(User){
var _url = AppConstants.webServiceUrl + "/users/addUserApp.json";
var _data = ObjectToParamsProvider.objectToParams(User);
var _headers2 = HeaderProvider2.getHeader();
return $http.post(_url, _data, {
headers: _headers2,
});
};
});