我需要做的是:我有一個使用網絡攝像頭捕捉照片的網頁。當你點擊一個按鈕時,它將當前的攝像頭圖像保存到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
});
};