[转]asp.net mvc 从数据库中读取图片

本文转自:http://www.cnblogs.com/mayt/archive/2010/05/20/1740358.html

首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下:

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 从数据库中读取图片,布布扣,bubuko.com

时间: 2024-12-23 04:14:01

[转]asp.net mvc 从数据库中读取图片的相关文章

php将图片保存到mysql数据库及从数据库中读取图片的方法源码 转

php将图片保存到mysql数据库及从数据库中读取图片的方法源码 分类: 网站 2012-03-11 15:25 5059人阅读 评论(0) 收藏 举报 数据库mysqlphpsql serverquerydatabase 一般来讲都是把图片保存到服务器下,然后根据路径读出的,但是有时候出于安全及版权什么的考虑,会把图片保存到mysql的数据库中,然后再读出来,这样的图片点击右键属性,是看不到图片地址的.下面逍遥一生就介绍下如何用php把图片存储到mysql中及如何读出.     MySQL数据

[转] 从数据库中读取图片并导入Excel文件,C#方式

原文地址, 作者 Lvyou1980 直接源码吧. using System; using System.IO; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; using Excel; private void EduceExcel() { string picPath=Directory.GetCurrentDirectory()+'\\Exc

使用Gridview绑定数据库中的图片

使用Gridview绑定数据库中的图片 注:此系列记录在我实际开发中遇到的问题和收藏一些技巧文章. 我们都知道,在Gridview中不能直接去绑定数据库中的图片,我们可以利用HttpHandler很容易的完成这个任务,在这里我记录一下这个过程. 1.上传图片存储到数据库中 在数据库中创建一个表,添加一下3个字段: 步骤一:在Web页面中拖一个FileUpload 控件,一个文本框用于输入名称和提交上传按钮 <asp:FileUpload ID="fuImage" runat=&q

【转载】MySQL存入图片+Qt读入读出数据库中的图片

/* Time: 2017.01.02 -- 2017.01.04 * Author: WJ * Function:连接数据库,从数据库中读取图片并显示(已成功) */ [参考链接] MySQL存入图片+Qt读入读出数据库中的图片 - lpdpzc的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/lpdpzc/article/details/41915835 [主要代码] void MainWindow::on_ShowImage_clicked() { QS

可以将一些配置信息已json格式存在数据库中读取的时候序列化。

public partial class json序列化 : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            StringBuilder builder = new StringBuilder(); builder.Append("{");            builder.Append("    \"C

C#从SQL server数据库中读取l图片和存入图片

原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类.BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中.主要代码如下: private void button1_Click(object sender, EventArgs e)

属性器,转换从数据库中读取的状态

[DataMapping("Status", DbType.Int16)]        public System.Int16 Status { get; set; } public string StatusValue        {            get            {                if (Status == 0)                {                    return "审核拒绝";    

在ASP.NET MVC应用程序中随机获取一个字符串

在开发ASP.NET MVC应用程序时,有可能需要一个随机字符串,作为密码或是验证码等. 如果你需要的是SQL版本,可以参考<密码需要带特殊字符(二)>http://www.cnblogs.com/insus/archive/2012/02/16/2354453.html 此篇实现方法多少是参照这个实现C#版本. 在应用程序下,创建一个CharacterUtility.cs: 这个类别中,分别有几个静态方法:一,为随机的小写字母: 二,是随机产生大写字母: 三,是随机产生数字: 四,是产生特殊

在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能

在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException异常.而在最终实现Server.Transfer()操作的方法内部,我看到这样几行代码. else if (!(handler is Page)) { error = new HttpException(0x194, string.Empty); } 很明显,在方法内部,所有的IHttpHandle