之前在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(); } } }
最后運行的結果: