asp.net mvc 从数据库中读取图片的实现代码
2015-04-25 23:12
1041 查看
首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下:
然后在 Controller类中创建一个Action.如下:
这样就可以显示图片了。
下面几种方法可以显示已经存在的图片
方法一:
方法二:
方法三:
这三种都可以显示已经存在的图片并且我认为第三种方法可以修改为从数据库中读取图片显示。
public class ImageResult : ActionResult { public ImageFormat ContentType { get; set; } public Image image { get; set; } public string SourceName { get; set; } public ImageResult(string _SourceName, ImageFormat _ContentType) { this.SourceName = _SourceName; this.ContentType = _ContentType; } public ImageResult(Image _ImageBytes, ImageFormat _ContentType) { this.ContentType = _ContentType; this.image = _ImageBytes; } public override void ExecuteResult(ControllerContext context) { context.HttpContext.Response.Clear(); context.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); if (ContentType.Equals(ImageFormat.Bmp)) context.HttpContext.Response.ContentType = "image/bmp"; if (ContentType.Equals(ImageFormat.Gif)) context.HttpContext.Response.ContentType = "image/gif"; if (ContentType.Equals(ImageFormat.Icon)) context.HttpContext.Response.ContentType = "image/vnd.microsoft.icon"; if (ContentType.Equals(ImageFormat.Jpeg)) context.HttpContext.Response.ContentType = "image/jpeg"; if (ContentType.Equals(ImageFormat.Png)) context.HttpContext.Response.ContentType = "image/png"; if (ContentType.Equals(ImageFormat.Tiff)) context.HttpContext.Response.ContentType = "image/tiff"; if (ContentType.Equals(ImageFormat.Wmf)) context.HttpContext.Response.ContentType = "image/wmf"; if (image != null) { image.Save(context.HttpContext.Response.OutputStream, ContentType); } else { context.HttpContext.Response.TransmitFile(SourceName); } } }
然后在 Controller类中创建一个Action.如下:
public ActionResult GetPicture(int id) { ICategory server = new CategoryServer(); byte[] buffer = server.getCategoryPicture(id); if (buffer != null) { MemoryStream stream = new MemoryStream(buffer); System.Drawing.Image image = System.Drawing.Image.FromStream(stream); ImageResult result = new ImageResult(image, System.Drawing.Imaging.ImageFormat.Jpeg); return result; } return View(); }
这样就可以显示图片了。
下面几种方法可以显示已经存在的图片
方法一:
using System.IO; public FileResult Image() { string path = Server.MapPath("/Content/Images/Decorative/"); string filename = Request.Url.Segments[Request.Url.Segments.Length - 1].ToString(); // Uss Path.Combine from System.IO instead of StringBuilder. string fullPath = Path.Combine(path, filename); return(new FileResult(fullPath, "image/jpeg")); }
方法二:
public ActionResult Image(string id) { var dir = Server.MapPath("/Images"); var path = Path.Combine(dir, id + ".jpg"); return base.File(path, "image/jpg"); }
方法三:
[AcceptVerbs(HttpVerbs.Get)] [OutputCache(CacheProfile = "CustomerImages")] public FileResult Show(int customerId, string imageName) { var path = string.Concat(ConfigData.ImagesDirectory, customerId, @"\", imageName); return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg"); }
这三种都可以显示已经存在的图片并且我认为第三种方法可以修改为从数据库中读取图片显示。
相关文章推荐
- asp.net mvc 从数据库中读取图片的实现代码
- asp.net 读取文本文件并插入数据库的实现代码
- [转]asp.net mvc 从数据库中读取图片
- asp.net 读取文本文件并插入数据库的实现代码
- asp.net 读取文本文件并插入数据库的实现代码
- ASP.NET实现从数据库中读取图片的方法
- ASP.NET中常用功能代码总结(上传图片到数据库,从数据库中读取图片)
- ASP.NET中常用功能代码总结(上传图片到数据库,从数据库中读取图片)
- ASP.Net 图片存入数据库的实现代码
- ASP.Net 图片存入数据库的实现代码
- ASP.NET中常用功能代码总结(上传图片到数据库,从数据库中读取图片)
- ASP.NET实现从数据库中读取图片的方法
- ASP.NET实现从数据库中读取图片的方法
- 实现ASP.NET数据库图片上传与读取的功能
- 使用ASP.NET MVC 4 Async Action+jQuery实现消息通知机制的实现代码
- 使用ASP.NET MVC 4 Async Action+jQuery实现消息通知机制的实现代码
- YbSoftwareFactory 代码生成插件【十】:ASP.NET WebApi MVC下审计、缓存和导出功能的实现
- ASP.NET MVC中实现数据库填充的下拉列表 .
- YbSoftwareFactory 代码生成插件【十一】:ASP.NET WebApi MVC下组织机构管理和菜单权限管理的实现