ASP.NET多文件批量打包下载
来源:互联网 发布:保税货物需要上传数据 编辑:程序博客网 时间:2024/06/10 00:54
在项目实施中,遇到了将多个文件一起打包后,提供给用户下载。如:在一个ASP.NET的开发项目中,通过一个GridView选中对应行数据的CheckBox,就可以实现对选中文件的打包下载了。
在对多文件打包中用到了 DotNetZip 的方法来实现对多文件压缩打包。需要到http://dotnetzip.codeplex.com/处下载该文件,然后引用即可。
在对多文件打包中用到了 DotNetZip 的方法来实现对多文件压缩打包。需要到http://dotnetzip.codeplex.com/处下载该文件,然后引用即可。
Default.aspx:<%@ Page Language="C#" 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 runat="server"><title>图片打包下载</title></head><body><form id="form1" runat="server"><p><asp:Button ID="PackDown" runat="server" Text="打包下载" OnClick="PackDown_Click" /></p><asp:GridView ID="GridView1" runat="server" Width="500px"CellPadding="8" CellSpacing="1"><Columns><asp:TemplateField HeaderText="<input type="checkbox"/>" InsertVisible="False"><ItemTemplate><asp:CheckBox ID="CheckBox1" runat="server" /></ItemTemplate><ItemStyle HorizontalAlign="Center" /></asp:TemplateField><asp:TemplateField HeaderText="文件列表" InsertVisible="False"><EditItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# eval_r("Name") %>'></asp:Label></EditItemTemplate><ItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label></ItemTemplate></asp:TemplateField></Columns></asp:GridView></form></body></html>Default.aspx.cs:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;using Ionic.Zip;public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){BindFilesList();}}void BindFilesList(){List<System.IO.FileInfo> lstFI = new List<System.IO.FileInfo>();string[] files = System.IO.Directory.GetFiles("d:\\webroot");foreach (var s in files){lstFI.Add(new System.IO.FileInfo(s));}GridView1.DataSource = lstFI;GridView1.DataBind();}protected void PackDown_Click(object sender, EventArgs e){Response.Clear();Response.ContentType = "application/zip";Response.AddHeader("content-disposition", "filename=DotNetZip.zip");using (ZipFile zip = new ZipFile(System.Text.Encoding.Default))//解决中文乱码问题{foreach (GridViewRow gvr in GridView1.Rows){if (((CheckBox)gvr.Cells[0].Controls[1]).Checked){zip.AddFile("d:\\webroot\\" + (gvr.Cells[1].Controls[1] as Label).Text, "");}}zip.Save(Response.OutputStream);}Response.End();}}原文地址:http://www.2cto.com/kf/201205/130901.html
- ASP.NET多文件批量打包下载
- ASP.NET多文件批量打包下载
- ASP.NET多文件批量打包下载
- ASP.NET多文件批量打包下载
- ASP.NET多文件批量打包下载 (这个好)
- ASP.NET下文件批量下载应用
- java文件批量打包下载
- 文件批量打包下载
- 文件批量打包下载
- asp.net多文件打包下载
- 文件批量打包下载 框架springmvc
- 文件批量上传和打包下载
- ASP.NET 文件打包下载
- Java 实现文件批量文件打包下载
- java将文件批量打包后并下载
- .NET多文件批量上传
- 文件批量打包
- 用asp.net做个多文件批量上传
- OpenStack多节点部署(二)——操作系统安装
- 公交车上乘客进食,司机不管,一大叔打那女孩一耳光
- C++ 对象的内存布局(下)
- js 弹出层的方法
- 一个线程交替运行的考题
- ASP.NET多文件批量打包下载
- android屏幕 单位转换
- cocos2d-x跨android&ios平台开发入门教程
- [DLL]创建和使用静态库Lib
- Java 十进制 转 二进制、八进制、十六进制
- Myeclipse_Struts+Hibernate
- for循环占用的指令周期问题
- 未来 Firefox 将不自动运行所有插件
- C语言中的柔性数组结构