使用jquery显示byte []图像

时间:2011-10-13 10:36:51

标签: jquery image asp.net-mvc-2

单击拇指图像时,我必须在同一视图中的div中以实际大小显示图像。我会解释我的情景。我正在使用asp.net mvc 2应用程序。在我看来,我有图像的拇指图像,它作为byte []存储在数据库中,而fileId也作为隐藏字段存储。单击拇指图像时,我需要显示存储在数据库中的实际图像。实际图像应显示在同一视图中的div中,单击拇指图像时应显示该div。这应该使用jquery发生。 感谢您对此进行调查。

2 个答案:

答案 0 :(得分:0)

如果您在数据库中以字节格式进行图像处理,则首先需要将图像保存在服务器目录中,并在保存图像文件后,在jquery的帮助下显示它。您还可以使用灯箱之类的插件以更具吸引力的方式显示图像。

通过这种方式,您可以在使用jquery的同一视图上显示图像,并发出AJAX请求来获取图像。

答案 1 :(得分:0)

您可以使用HttpHandler。向项目添加通用处理程序,并在ProcessRequest方法

中执行以下操作
            context.Response.Clear();

            var imageID = context.Request.QueryString["imageID"];   

            MemoryStream stream = new MemoryStream();   

            try
            {
                byte[] buffer = GetYourImageBuffer(imageID);                    

                if(buffer != null)
                {
                    stream = new MemoryStream(buffer);
                    Image image = Image.FromStream(stream);
                    context.Response.ContentType = "image/jpeg"; //Or what ever
                    image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
                }                    
            }
            finally
            {
                context.Response.Flush();
                stream.Close();
            }

然后在你的html中你可以通过......来调用它。

<img src="ImageHandler.ashx?imageID=<%: Model.Image.ID %>" />