我需要做的是:我有一个使用网络摄像头捕捉照片的网页。当你点击一个按钮时,它将当前的摄像头图像保存到HTML画布对象。当我从画布对象中获取图像时,它会以Base64编码的字符串形式出现,例如,将图像(base64字符串)上传到Web API作为文件流
数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABwCAYAAAD8HIl9AAAgAElEQVR4Xky9B7hld3Hl ...
在另一端是用来保存照片到服务器一个Web API服务。它用C#编写,期待FileStream。
我的前端是仅使用HTML和Javascript编写的(包含Angular/Jquery)。我需要以预期的格式将图像发送到服务器。
我一直撞着我的头靠在墙上两天。看来我需要做的是创建一个FormData对象,将图像添加到它,并发送它。但是这样做会给我200错误。东西形成不正确。
虽然我使用类型为file的输入元素,并从磁盘上传文件,但此代码完美工作。当我传递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
});
};