.aspx file
.aspx.cs
DisplayImg.ashx
name<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
imagef<asp:FileUpload ID="FileUpload1" runat="server" />
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<br />
<br />
<br />
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<a href='<%# string.Concat("/DisplayImg.ashx?id=", Eval("id"))%>' download='<%# string.Concat("",Eval("name")) %>'>
<asp:Image ID="Image1" runat="server" Height="46px" Width="97px" ImageUrl='<%# string.Concat("~/DisplayImg.ashx?id=", Eval("id"))%>'/>
</a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Download">
<ItemTemplate>
<a href='<%# string.Concat("/DisplayImg.ashx?id=", Eval("id"))%>' download="file">Download</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
.aspx.cs
BAL b = new BAL();
protected void Page_Load(object sender, EventArgs e)
{
GridView2.DataSource = b.bindempl();
GridView2.DataBind();
}
protected void
Button1_Click(object sender, EventArgs e)
{
Byte[] imgByte = null;
if (FileUpload1.HasFile && FileUpload1.PostedFile
!= null)
{
HttpPostedFile File = FileUpload1.PostedFile;
imgByte
= new Byte[File.ContentLength];
File.InputStream.Read(imgByte, 0, File.ContentLength);
b.name
= TextBox1.Text;
b.imgbyte = imgByte;
b.saveempl(b);
GridView2.DataSource = b.bindempl();
GridView2.DataBind();
}
}
DisplayImg.ashx
<%@ WebHandler Language="C#" Class="DisplayImg" %>
using System;
using System.Web;
using System.IO;
public class DisplayImg : IHttpHandler {
BAL b = new BAL();
public void ProcessRequest (HttpContext context)
{
Int32 theID;
if (context.Request.QueryString["id"] != null)
theID =
Convert.ToInt32(context.Request.QueryString["id"]);
else
throw new ArgumentException("No
parameter specified");
context.Response.ContentType = "image/jpeg";
Stream strm = b.DisplayImage(theID);
byte[] buffer = new byte[2048];
int byteSeq = strm.Read(buffer, 0, 2048);
while (byteSeq > 0)
{
context.Response.OutputStream.Write(buffer, 0, byteSeq);
byteSeq
= strm.Read(buffer, 0, 2048);
}
}
public bool IsReusable {
get {
return false;
}
}
}
BAL.cs
public class BAL:DAL
{
public BAL()
{
//
// TODO: Add constructor logic here
//
}
//file in db
public int id1 { get; set; }
public string name { get; set; }
public byte[] imgbyte { get; set; }
}
DAL.cs
public Stream DisplayImage(int theID)
{
string sql = "SELECT image FROM empl WHERE id = @ID";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@ID", theID);
con.Open();
object theImg = cmd.ExecuteScalar();
try
{
return new MemoryStream((byte[])theImg);
}
catch
{
return null;
}
finally
{
con.Close();
}
}
public DataSet bindempl()
{
cmd = new SqlCommand("select * from empl", con);
cmd.CommandType = CommandType.Text;
da = new SqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);
return ds;
}
No comments:
Post a Comment