Description:-
In
Previous Example we Explain that How to Extract or Covert All Files to Zip
Folder.Here we Explain that How to Download Multiple Selected File as a Zip
File File From Gridview Based on CheckBox Selection in Asp.Net Using C#.
We All know that user have many
thought like Download multiple File at a time and also selected Files is
Download or other not. So to provide this type of Facility we can use this
Example.
First using this Example we must
have Download Ionic.Zip.dll
from DotnetZIP Library.once download this File then you have to Add this dll
file in Bin Folder of your Application.this dll are contain some code that are
used to create a Zip File and just have to implement in our project.
below Image Descibe that How to add dll File in Bin Folder like
Now Create another
Folder with name SampleFiles and this Folder are used for storing all
uploaded file.
Before use this Example you must
have to Add the Following Namespace in your Application like
using System.IO;
using Ionic.Zip;
To Download Complete Project plz Click below Download Image link
Default.aspx:-
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Download More than one Files as zip files
in Asp.net using c#</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="fileUpload1" runat="server" />
<asp:Button ID="btnupld" runat="server" Text="Upload more than one
files" onclick="btnupld_Click" />
<br />
<asp:Label ID="lblmsg" runat="server" Font-Bold="true" ForeColor="Red" />
</div>
<asp:GridView ID="gvDetails" CellPadding="4" runat="server" AutoGenerateColumns="False" EnableModelValidation="True" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkchecked" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Text" HeaderText="uploadFileName" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="true" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
<asp:Button ID="btndwnld" Text="Download All Checked
Files" runat="server" onclick="btndwnld_Click" />
</form>
</body>
</html>
Default.aspx.cs:-
using
System;
using
System.Collections.Generic;
using
System.IO;
using
System.Web.UI.WebControls;
using
Ionic.Zip;
public partial class _Default :
System.Web.UI.Page
{
protected void Page_Load(object
sender, EventArgs e)
{
if(!Page.IsPostBack)
{
Binddata();
}
}
// Bind Data to Gridview
protected void Binddata()
{
string[] dirPath = Directory.GetFiles(Server.MapPath("~/SampleFiles/"));
List<ListItem> files = new List<ListItem>();
foreach (string sourcepath in dirPath)
{
files.Add(new ListItem(Path.GetFileName(sourcepath)));
}
gvDetails.DataSource = files;
gvDetails.DataBind();
}
// insert all the files in Destination
Directory
protected void btnupld_Click(object sender, EventArgs e)
{
if (fileUpload1.HasFile)
{
string filename = Path.GetFileName(fileUpload1.PostedFile.FileName);
string path = Server.MapPath("~/SampleFiles/" + filename);
fileUpload1.SaveAs(path);
lblmsg.Text = "File was Successfully
Uploaded";
Binddata();
}
}
// convert all files to Zip folder
protected void btndwnld_Click(object sender, EventArgs e)
{
using (ZipFile zip = new ZipFile())
{
foreach (GridViewRow gvrow in gvDetails.Rows)
{
CheckBox chk = (CheckBox)gvrow.FindControl("chkchecked"); //Get all files list that are checked in Gridvieww
if(chk.Checked)
{
string filenm= gvrow.Cells[1].Text ;
string filePath = Server.MapPath("~/SampleFiles/" + filenm);
zip.AddFile(filePath, "files");
}
}
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=DownloadedFile.zip"); // name of .Zip File
Response.ContentType = "application/zip";
zip.Save(Response.OutputStream);
Response.End();
}
}
}
0 comments:
Post a Comment