Что мне нужно сделать: у меня есть веб-страница, которая использует веб-камеру для захвата фотографии. Когда вы нажимаете кнопку, это сохраняет текущее изображение веб-камеры в HTML-холсте. Когда я получаю изображение из объекта canvas, он выводится как закодированная в Base64 строка, например.Загрузка изображения (строка base64) в Web API в качестве filestream
данные: изображение/PNG; base64, iVBORw0KGgoAAAANSUhEUgAAAJYAAABwCAYAAAD8HIl9AAAgAElEQVR4Xky9B7hld3Hl ...
На другом конце сервис Web API используется для сохранения фотографии на сервер. Он написан на C# и ожидает FileStream.
Мой передний конец написан с использованием только HTML и Javascript (включая Angular/JQuery). Мне нужно отправить изображение на сервер в ожидаемом формате.
Я бил головой о стену в течение двух дней. Кажется, что мне нужно сделать, это создать объект FormData, добавить изображение к нему и отправить его. Но это дает мне 200 ошибок. Что-то не сформировано правильно.
Хотя я использую элемент ввода типа файла и загружаю файл с диска, этот код работает отлично. Когда, когда я передаю ему строку изображения base64, она терпит неудачу. Когда я добавляю строку изображения к объекту FormData, она терпит неудачу.
factory.setPhoto = function (id, image) {
var fd = new FormData();
fd.append('file', image);
return $http.post(baseUrl + '/' + id, fd, {
transformRequest: angular.identity,
headers: { 'Content-Type': undefined }
}).then(function (results) {
// whatever
});
};