After a longtime, here is how this would work.
Using the notify callback for the promise solves the problem. As I had stated earlier, I had moved the file upload code (based on this rep enter link description here) into the angular services and I was not able to get file upload progress. Since I was returning the promise from services, so I could only get the file completion.
the above git rep also has a
.progress(function(evt){ file_upload_percent=(parseInt(100.0 * evt.loaded / evt.total)})
function that gives the file completion percentage. Using the promise notify here, we can return this intermediate value like this :
.progress(function(evt) { file_upload_percent=(parseInt(100.0 * evt.loaded / evt.total)); deferred.notify(file_upload_percent);})
later using notify callback from the promise return, we can access the file completion percentage.
.then(function(response){},function(){},function(update){$scope.file_upload_percent=update});
use $scope.file_upload_percent as you would wish to.