必要な処理:ウェブカメラを使用して写真をキャプチャするWebページがあります。ボタンをクリックすると、現在のWebカメラ画像がHTMLキャンバスオブジェクトに保存されます。キャンバスオブジェクトからイメージを取得すると、Base64でエンコードされた文字列として出力されます。イメージ(base64文字列)をWeb APIにファイルストリームとしてアップロードする
データ:画像/ PNG形式、もう一方の端にはbase64で、iVBORw0KGgoAAAANSUhEUgAAAJYAAABwCAYAAAD8HIl9AAAgAElEQVR4Xky9B7hld3Hl ...
は、サーバーに写真を保存するために使用されるWeb APIサービスです。これはC#で書かれており、FileStreamが必要です。
私のフロントエンドは、HTMLとJavascript(角度/ Jqueryが含まれています)を使用して書かれています。私はイメージをサーバーに期待した形式で送る必要があります。
私は2日間、頭を壁に向けて叩いています。私がする必要があるのは、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
});
};