により、たとえば画像を作成する別のページを作成しますMemoryStreamオブジェクトに格納し、ASP.NETsキャッシュに配置します。
MemoryStream ms = new MemoryStream(user.Picture.ToArray());
Guid imageGuid = new Guid();
HttpRuntime.Cache.Add(imageGuid.ToString(), ms, null,
DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
次に、ハンドラ(.ashx)を使用してキャッシュからフェッチし、クライアントに送信します。
string imageGuid = context.Request.QueryString[image];
MemoryStream ms = (MemoryStream)HttpRuntime.Cache[imageGuid];
// configure context.Response with appropriate content type and cache settings
// ** Edit **
// It seems I need to be more explicit with regard to the above comment:-
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetLastModified(DateTime.UtcNow);
context.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(2);
context.Response.Cache.SetMaxAge(TimeSpan.FromHours(2));
context.Response.Cache.SetValidUntilExpires(true);
ms.WriteTo(context.Response.OutputStream);
これで、キャッシュからMemoryStreamを削除できます。
HttpRuntime.Cache.Remove(imageGuid);
画像データをファイルとして保存できませんか? – AnthonyWJones
これは最初のルートでしたが、データベースにイメージを格納することが推奨されました。 (私の頭の上)だから私はその状況を最大限に活用しなければならない。 – markoo
みなさん、ありがとうございます。迅速かつ洞察力のある回答。 – markoo