2017-02-04 22 views
0

必要な処理:ウェブカメラを使用して写真をキャプチャする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 
    }); 
}; 

答えて

1

base64データコンポーネントを生のバイナリデータに変換し、formdataに渡す必要があります。この記事の解決策の1つを試してみてください。

https://stackoverflow.com/a/5100158/1980415

関連する問題