前提
HTMLのmultipart/form-dataで送られてきた画像について処理をする.NET APIを作る。
DB周りはEntityFrameworkを利用
DBの画像バイナリを保存する列の型はvarbinary(max)を想定
画像をDBにinsertする場合
下記のように定義したメソッドを利用すればOK
public void insertToDB()
{
Entities DB = new Entities();
MemoryStream memory;
var postedFiles = HttpContext.Current.Request.Files;
foreach (string file in postedFiles)
{
using (memory = new MemoryStream())
{
postedFiles[file].InputStream.CopyTo(memory);
DB.tImages.Add(new tImages { bImage= memory.ToArray() });
}
}
DB.SaveChanges();
}
画像をDBから取得する場合
ApiControllerで下記のGetメソッドを定義してやれば画像がURLベースで利用できる
public HttpResponseMessage Get(int id)
{
Entities DB = new Entities();
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StreamContent(new MemoryStream(DB.tImages
.Where(img => img.id== id)
.Select(img=> img.bImage)
.First()));
return result;
}
わりかし簡単