Step 1: Create a ashx Page Step 2: copy this code into your ashx page.
using System; using System.Drawing; using System.IO; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Security; using System.Configuration; using System.Data.SqlClient; using System.Data;
public class AdvertisementHandler : IHttpHandler { SqlConnection sqlCon=new SqlConnection(ConfigurationSettings.AppSettings["connectionstring"]); SqlCommand sqlCmd; SqlDataReader rdr = null; public void ProcessRequest (HttpContext context) {
try { sqlCmd = new SqlCommand("Usp_Get_AdvertisementByid",sqlCon); sqlCmd.CommandType = CommandType.StoredProcedure; sqlCon.Open(); sqlCmd.Parameters.Add(new SqlParameter("@AdvertisementId", context.Request.QueryString["AdverTisementId"].ToString())); rdr = sqlCmd.ExecuteReader(); while (rdr.Read()) { context.Response.ContentType = "image/jpeg"; context.Response.BinaryWrite((byte[])rdr["AdvertisementFile"]); } if (rdr != null) rdr.Close(); /// if developer has to load static image then use this /// ReadImage(WriteImage(context.Server.MapPath("~/image/banner.jpg")), context); } catch (Exception ex) { ReadImage(WriteImage(context.Server.MapPath("~/image/ad1.jpg")), context); } finally { sqlCon.Close(); } }
private byte[] WriteImage(string filename)//convert image file to byte[] { FileStream fs = File.OpenRead(filename); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); return buffer; } private void ReadImage(byte[] img,HttpContext context)//show the byte[] image { // Set up the response settings context.Response.ContentType = "image/jpg"; context.Response.Cache.SetCacheability(HttpCacheability.Public); context.Response.BufferOutput = false;
Stream stream = new MemoryStream(img); const int buffersize = 1024 * 16; byte[] buffer = new byte[buffersize]; int count = stream.Read(buffer, 0, buffersize); while (count > 0) { context.Response.OutputStream.Write(buffer, 0, count); count = stream.Read(buffer, 0, buffersize); } } public bool IsReusable { get { return false; } } }
Then Set Image Url of control Image Img.ImageUrl = "Handler.ashx?AdverTisementId="+dsFile.Tables[0].Rows[i]["AdvertiseMentId"].ToString() + "";
|