Step 1:- Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Demo.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Download
File</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnDownload" runat="server" Text="Download" OnClick="btnDownload_Click" />
</div>
</form>
</body>
</html>
Step 2:- Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Demo
{
public partial class Default :
System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
}
protected DataTable BindData()
{
DataTable dt
= new DataTable();
DataRow dr
= null;
dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
dt.Columns.Add(new DataColumn("Column1", typeof(string)));
dt.Columns.Add(new DataColumn("Column2", typeof(string)));
dt.Columns.Add(new DataColumn("Column3", typeof(string)));
int totalRow
= 15;
for (int i
= 0; i < totalRow; i++)
{
dr = dt.NewRow();
dr["RowNumber"] = i + 1;
dr["Column1"] = "Row" + i;
dr["Column2"] = "Row" + i;
dr["Column3"] = "Row" + i;
dt.Rows.Add(dr);
}
return dt;
}
protected void btnDownload_Click(object sender, EventArgs e)
{
string strDD
= DateTime.Now.ToString("dd");
string strMM
= DateTime.Now.ToString("MM");
string strYY
= DateTime.Now.ToString("yyyy");
string strDate
= strDD + "" + strMM + "" +
strYY;
string fileName
= "Demo_" + strDate + ".txt";
string filePath
= Server.MapPath(@"~\Download\" +
fileName);
// If
file already exists in path then delete
if (File.Exists(filePath))
{
File.Delete(filePath);
}
// If
Download folder not exists in path then create
if(!Directory.Exists(Server.MapPath(@"~\Download\")))
{
Directory.CreateDirectory(Server.MapPath(@"~\Download\"));
}
StreamWriter sw
= new StreamWriter(filePath, false, Encoding.Default);
foreach (DataColumn dataColumn in BindData().Columns)
{
string column
= string.Empty;
column += dataColumn.ColumnName.ToString().PadRight(15);
sw.Write(column);
}
sw.WriteLine(Environment.NewLine);
foreach (DataRow dataRow in BindData().Rows)
{
string row
= string.Empty;
foreach (object item in dataRow.ItemArray)
{
row += item.ToString().PadRight(15);
}
sw.WriteLine(row);
}
sw.Flush();
sw.Close();
FileStream fs
= null;
fs = File.Open(filePath,FileMode.Open);
byte[]
byteFile = new byte[fs.Length];
fs.Read(byteFile, 0, (int)fs.Length);
fs.Close();
Response.AddHeader("Content-disposition", "attachment;
filename=" + fileName);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(byteFile);
Response.End();
}
}
}
This comment has been removed by a blog administrator.
ReplyDelete