Saturday, August 8, 2015

Demonstration of format and icon of uploaded file and download with gridview in ASP.NET C#.

Step1.
First of all make a table named tblUpload for storing files.
           
Step2.
Make HTML for showing files in Gridview.
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" DataKeyNames="FileId">
<HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
<Columns>
<asp:BoundField DataField="FileId" HeaderText="ID" />
<asp:TemplateField headerText="Image">
<ItemTemplate>
<asp:Image ID="img" runat="server" ImageUrl='<%#Eval("Icon")%>' Height="40" Width="40" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FileName" HeaderText="Name" />
<asp:BoundField DataField="FileType" HeaderText="Type" />
<asp:BoundField DataField="DateOfUpload" HeaderText="Date Of Upload" />
<asp:TemplateField HeaderText="FilePath">
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


Step 3.
In code behind file add these Namespaces.
using System;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI.WebControls;
Step 4.
Add a folder named Image to solution.

                                       

And add some images of icons in this folder.
Step 5.
And now add this code to code behind file.

string strCon = "Data Source=JITENDRA-PC\\SQLEXPRESS;Initial Catalog=Vaibhav_Task;Integrated Security=True";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridviewData();
}
}
// Bind Gridview Data
private void GridviewData()
{
using (SqlConnection con = new SqlConnection(strCon))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select * from tblUpload";
cmd.Connection = con;
con.Open();
gv.DataSource = cmd.ExecuteReader();
gv.DataBind();
con.Close();
}
}
}
// Save files to Folder and files path in database
protected void btnUpload_Click(object sender, EventArgs e)
{
string filename = Path.GetFileName(fileUpload1.PostedFile.FileName);
Stream str = fileUpload1.PostedFile.InputStream;
string ext = System.IO.Path.GetExtension(fileUpload1.PostedFile.FileName);
BinaryReader br = new BinaryReader(str);
Byte[] size = br.ReadBytes((int)str.Length);
string date= System.DateTime.Now.ToString();
string icon;
if (ext == ".pdf")
{
icon = "Image/pdf.png" ;
}
else if (ext == ".jpg" || ext == ".jpeg" || ext == ".jpe" || ext == ".png" || ext == ".jfif")
{
icon = "Image/jpg.jpg" ;
}
else if (ext == ".ppt")
{
icon = "Image/ppt.jpg" ;
}
else if (ext == ".docx" || ext == ".txt" || ext == ".doc")
{
icon = "Image/word.jpg" ;
}
else if (ext == ".xls")
{
icon = "Image/xls.jpg" ;
}
else
{
icon = "Image/unknown.png" ;
}
using (SqlConnection con = new SqlConnection(strCon))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "insert into tblUpload(Icon,FileName,FileType,DateOfUpload,Data) values(@Icon,@FileName,@FileType,@DateOfUpload,@Data)";
cmd.Parameters.AddWithValue("@Icon", icon);
cmd.Parameters.AddWithValue("@FileName", filename);
cmd.Parameters.AddWithValue("@FileType", ext);
cmd.Parameters.AddWithValue("@DateOfUpload",date);
cmd.Parameters.AddWithValue("@Data", size);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
GridviewData();
}
}
}
// This button click event is used to download files from gridview
protected void lnkDownload_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = sender as LinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
int fileid = Convert.ToInt32(gv.DataKeys[gvrow.RowIndex].Value.ToString());
using (SqlConnection con = new SqlConnection(strCon))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select FileName, FileType, Data from tblUpload where FileId=@Id";
cmd.Parameters.AddWithValue("@Id", fileid);
cmd.Connection = con;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
Response.ContentType = dr["FileType"].ToString();
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + dr["FileName"] + "\"");
Response.BinaryWrite((byte[])dr["Data"]);
Response.End();
}
}
}
}




Output-



No comments:

Post a Comment

Rewrite whole Web Site System and Sub System with data migration to new system.

Can you please share me your skype id or whats up number for better communications  my skype id is - jitendra.tech  whats up - +919617741414...