angular.module('app.main', [])
|
|
|
|
.controller('MainCtrl', function($scope, $http, fileReader) {
|
|
$scope.response = "";
|
|
$scope.imageSrc="";
|
|
$scope.uploadFile = function() {
|
|
var blob = dataURItoBlob(selectedImg);
|
|
$scope.img_file= blob;
|
|
|
|
console.log("$scope.img_file");
|
|
console.log($scope.img_file);
|
|
var fd = new FormData();
|
|
//Take the first selected file
|
|
fd.append("file", $scope.img_file);
|
|
console.log(fd);
|
|
$http({
|
|
url: urlapi + 'predict',
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": undefined
|
|
},
|
|
data: fd
|
|
})
|
|
.then(function(data) {
|
|
console.log("response: ");
|
|
console.log(data.data);
|
|
// response reaction
|
|
$scope.response= data.data.result;
|
|
},
|
|
function(response) { // optional
|
|
// failed
|
|
console.log(response);
|
|
});
|
|
};
|
|
|
|
function dataURItoBlob(dataURI) {
|
|
// convert base64/URLEncoded data component to raw binary data held in a string
|
|
var byteString;
|
|
if (dataURI.split(',')[0].indexOf('base64') >= 0)
|
|
byteString = atob(dataURI.split(',')[1]);
|
|
else
|
|
byteString = unescape(dataURI.split(',')[1]);
|
|
|
|
// separate out the mime component
|
|
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
|
|
|
|
// write the bytes of the string to a typed array
|
|
var ia = new Uint8Array(byteString.length);
|
|
for (var i = 0; i < byteString.length; i++) {
|
|
ia[i] = byteString.charCodeAt(i);
|
|
}
|
|
|
|
return new Blob([ia], {type:mimeString});
|
|
}
|
|
|
|
})
|
|
.directive("ngFileSelect", function(fileReader, $timeout) {
|
|
return {
|
|
scope: {
|
|
ngModel: '='
|
|
},
|
|
link: function($scope, el) {
|
|
function getFile(file) {
|
|
fileReader.readAsDataUrl(file, $scope)
|
|
.then(function(result) {
|
|
$timeout(function() {
|
|
$scope.ngModel = result;
|
|
selectedImg = result;
|
|
});
|
|
});
|
|
}
|
|
|
|
el.bind("change", function(e) {
|
|
var file = (e.srcElement || e.target).files[0];
|
|
getFile(file);
|
|
});
|
|
}
|
|
};
|
|
})
|
|
.factory("fileReader", function($q, $log) {
|
|
var onLoad = function(reader, deferred, scope) {
|
|
return function() {
|
|
scope.$apply(function() {
|
|
deferred.resolve(reader.result);
|
|
});
|
|
};
|
|
};
|
|
|
|
var onError = function(reader, deferred, scope) {
|
|
return function() {
|
|
scope.$apply(function() {
|
|
deferred.reject(reader.result);
|
|
});
|
|
};
|
|
};
|
|
|
|
var onProgress = function(reader, scope) {
|
|
return function(event) {
|
|
scope.$broadcast("fileProgress", {
|
|
total: event.total,
|
|
loaded: event.loaded
|
|
});
|
|
};
|
|
};
|
|
|
|
var getReader = function(deferred, scope) {
|
|
var reader = new FileReader();
|
|
reader.onload = onLoad(reader, deferred, scope);
|
|
reader.onerror = onError(reader, deferred, scope);
|
|
reader.onprogress = onProgress(reader, scope);
|
|
return reader;
|
|
};
|
|
|
|
var readAsDataURL = function(file, scope) {
|
|
var deferred = $q.defer();
|
|
|
|
var reader = getReader(deferred, scope);
|
|
reader.readAsDataURL(file);
|
|
|
|
return deferred.promise;
|
|
};
|
|
|
|
return {
|
|
readAsDataUrl: readAsDataURL
|
|
};
|
|
});
|