我已在数据库中保存了图像,并希望将其显示给用户。
存储图像的表格如下所示:
Images
------
ImageData Byte
ImageName String
ContentType String
我应该如何加载并在我的视图中显示它?
答案 0 :(得分:6)
在Image controller类中:
public ActionResult ProfileImage(string userName)
{
var imageByteArray = // get image bytes from DB corresponding to userName
string contentType = // get image content type from DB for example "image/jpg"
string fileName = // get image file name from DB
return File(imageByteArray, contentType, fileName);
}
在视图中:
<img src='/Image/ProfileImage/yourUserName' alt='Profile image' />
您还需要Global.asax中的自定义路线:
routes.MapRoute(
"ProfileImage",
"Image/ProfileImage/{userName}",
new { controller = "Image", action = "ProfileImage", userName = "" }
);
您还可以在位图中加载图像并应用调整大小,旋转等更改。如果这样做,请考虑将图像保存为png,因为GDI +(System.Drawing)可以使用此格式保持最佳质量和透明度。缓存动态图像也是一种很好的做法。