On the client side, you have a load complete handler on your image (I assume that's the image you want in the database):
vm.imageIsLoaded = function (e) {
$scope.$apply(function () {
vm.step = e.target.result;
});
}
You want to send that
e.target.result to the server in your service call. Once there you parse off the beginning text that just identifies the media type. Then you have a perfectly good image as a base64 string. You can store it in the database as text, or continue on to convert to an Image and store it that way:
string imageString = ThisValueIsETargetResultFromClient;
imageString = imageString.Substring(imageString.IndexOf(",") + 1);
using(MemoryStream ms = new MemoryStream(Convert.FromBase64String(imageString)))
{
System.Drawing.Image image = System.Drawing.Bitmap.FromStream(ms);
}