r.r*_*r.r 1 .net c# sql asp.net asp.net-mvc
我已在数据库中保存了一个图像,并希望将其显示给用户.
存储图像的表格如下所示:
Images
------
ImageData Byte
ImageName String
ContentType String
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能加载并在我的视图中显示它?
在Image控制器类中:
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);
}
Run Code Online (Sandbox Code Playgroud)
在视图中:
<img src='/Image/ProfileImage/yourUserName' alt='Profile image' />
Run Code Online (Sandbox Code Playgroud)
您还需要Global.asax中的自定义路由:
routes.MapRoute(
"ProfileImage",
"Image/ProfileImage/{userName}",
new { controller = "Image", action = "ProfileImage", userName = "" }
);
Run Code Online (Sandbox Code Playgroud)
您还可以在位图中加载图像并应用更改,如调整大小,旋转等.如果这样做,请考虑将图像保存为png,因为GDI +(System.Drawing)可以使用此格式保持最佳质量和透明度.缓存动态图像也是一种很好的做法.