2017-02-04 70 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 
    }); 
}; 

回答