2017-02-04 71 views
0

我需要做的是:我有一个使用网络摄像头捕捉照片的网页。当你点击一个按钮时,它将当前的摄像头图像保存到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 
    }); 
}; 

回答