如何在Asp.Net MVC中显示保存在数据库的图片?
来源:广州中睿信息技术有限公司
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 4432

 

  MVC里用FileResult来返回文件,它是一个抽象类,实际使用中可以用它的三个子类FilePathResult,FileContentResult和FileStreamResult。它们的结果都是一样的,只是读文件的方式不同。

  FilePathResult通过传递文件路径(String)

  FileContentResult通过传递文件内容(byte[])

  FileStreamResult通过传递文件流(Stream)

  显然,要显示文件系统的图片用FilePathResult最简单,而要显示在数据库的图片就用FileContentResult。

  我们可以在一个Controller里写一个Action:

  

  首先根据id从数据库获取图片,然后指定ContentType并返回一个FileContentResult。FileContentResult内部将图片数据写到response.OutputStream。   为了方便使用可以写一个辅助方法   

  然后在要用到图片的地方这样使用即可:

  @Html.Image(Url.Action("ShowStructureGraph", "Project", new { id }), new { width = 750 })   另外还有一种方式:   @Html.Image("data:image/jpeg;base64," +System.Convert.ToBase64String( Model.StructureGraph) , new { width = 750 })   这种方式直接把图片嵌入到Html里,减少了服务器请求次数。   不过这种方式不可以缓存图片;因为使用base64编码占用带宽会大一些。

  

  

本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。