2010-08-25 86 views
1

我已经在数据库上保存了一个图像,并且想要将其显示给用户。如何在ASP.NET MVC中从数据库加载图像?

表的图像存储在看起来像这样:

 Images 
     ------ 
ImageData  Byte 
ImageName  String 
ContentType String 

我应该怎么做来加载,并显示在我的观?

回答

6

图像控制器类:

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)可以保持这种格式的最佳质量和透明度。缓存动态图像也是一个很好的做法。

+0

ImageData = Convert.ToByte [](reader [“@ ImageData”]); 如何读取字节类型的信息?我在第一个“]”后出错了。 – 2010-08-25 15:26:15

+0

它是什么意思15? imageName? – 2010-08-25 15:35:38

+0

对不起,它应该是用户名(或者如果你这样决定的话,图像名称) – 2010-08-25 18:56:27

相关问题