C#とAzureでWeb Api 2を使用していますが、ページに表示するために画像(Memorystreamからのベース)を返す方法に問題があります...
これが私のコントローラーHTTPGETです
[Route("api/PhotoSubmit/GetPhoto/{id}")]
[HttpGet]
public HttpResponseMessage GetPhotoById(int id)
{
StorageServices storage = new StorageServices();
MemoryStream ms = storage.DownloadBlob(id);
// return what ?
}
これがサービスコールの始まりです:
$http({
method: 'GET',
url: 'api/PhotoSubmit/GetPhoto/' + $routeParams.id,
accept: 'application/json'
})
.success(function(result) {
// How do i handle the result and what HTML should i use ? <img ?
});
クライアント側からは、$ httpを使用する必要はありません。プレーンな古いHTMLを使用することでプロセスを簡素化できます...
<img src="/api/PhotoSubmit/GetPhoto/2232" />
動的画像の場合は、次のようなJQueryを使用します...
$('#ImageLocation').html('<img src="/api/PhotoSubmit/GetPhoto/' + intID + '" />');
Webブラウザーは、画像のHTTP要求を行う作業を自動的に実行するため、複雑さが軽減されます。
サーバー側では、このようなプロセスを使用してファイルをロードし、クライアントにストリーミングできます。サーバーコードが次のような正しいMIMEタイプを返すことが重要です...
context.Response.ContentType = "image/png";
リソース:
ASP .Net Web APIが画像をバイナリとしてダウンロード
...そして...