你的位置:首页 > ASP.net教程

[ASP.net教程]如何显示二进制流的图片(利用img控件)

之前在http://www.cnblogs.com/JsonZhangAA/p/5568575.html博文中是利用的image控件来显示的二进制流图片,我现在想的是能

通过普通的<img id="xx" src="xx"/>这种形式来显示我的二进制流图片吗?必须可以(◑▽◐),就是写法稍微麻烦了一点,img要写成这个样子:

,对你看的没错,它的地址指向了一个aspx页面,这个页面有个奇特之处,

就是我们新建后,不用写任何前台代码,WebForm1前后台代码如下:

前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="显示爬虫所爬的数据库中的图片.WebForm1" %>

后台代码:

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using 显示爬虫所爬的数据库中的图片.Models;namespace 显示爬虫所爬的数据库中的图片{  public partial class WebForm1 : System.Web.UI.Page  {    protected void Page_Load(object sender, EventArgs e)    {      int id = int.Parse(Request["id"].ToString());      DataClasses1DataContext db = new DataClasses1DataContext();      Response.ContentType = "application/binary;";      //这个地方图片可以从数据库中读取二进制图片       //byte[] img = DBHelper.ReadImg();       byte[] img = db.pictureUrl.Where(p=>p.Id==id).First().pictureUrl1.ToArray();      Response.BinaryWrite(img);      Response.Flush();      Response.End();     }  }}

我们主页面的前后台代码如下:

前台:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %><!DOCTYPE html><html><head runat="server">  <meta name="viewport" content="width=device-width" />  <title>Index</title></head><body>  <div>    <%foreach(var item in ViewBag.Pictures) %>    <%{ %>       <img src="WebForm1.aspx?id=<%:item.Id %>" />    <%} %>  </div></body></html>

后台代码:

using System;using System.Collections.Generic;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Web;using System.Web.Mvc;using 显示爬虫所爬的数据库中的图片.Models;namespace 显示爬虫所爬的数据库中的图片.Controllers{  public class HomeController : Controller  {    //    // GET: /Home/    DataClasses1DataContext db = new DataClasses1DataContext();    public ActionResult Index()    {      ViewBag.Pictures = db.pictureUrl;      return View();    }  }}

最后运行的结果: