前面有生成Excel或Word的示例,所以就不再重新写了。

这里只提供将指定文件以ZIP的方式下载。

创建一个 Zip工具类

public class ZIPCompressUtil
{
public static byte[] Zip(List<string> AllFilesPath)
{
try
{
if (AllFilesPath.Count > )
{
MemoryStream ms = new MemoryStream();
byte[] buffer = null; using (ZipFile file = ZipFile.Create(ms))
{
file.BeginUpdate();
file.NameTransform = new MyNameTransfom();
//通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。 for (int i = ; i < AllFilesPath.Count; i++)
{
string strFile = AllFilesPath[i];
file.Add(strFile);
} file.CommitUpdate(); buffer = new byte[ms.Length];
ms.Position = ;
ms.Read(buffer, , buffer.Length);
}
return buffer; }
return null;
}
catch
{
return null;
} }
}

在ActionResulit中调用Zip工具类。

public ActionResult ExportZIP()
{
List<string> fileAll = new List<string>();
//将所有文件所在的地址添加到fileAll中
...操作代码 //调用ZIP工具类,将集合传递给它
var buffer = ZIPCompressUtil.Zip(fileAll); Response.AppendHeader("content-disposition", "attachment;filename=名称.zip");
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
}

如果大家有什么好的想法,可以留言,我肯定会学习并实践好再拿出来分享。

非常感谢。

如果对您有帮助,请点赞!

Asp.net MVC 生成zip并下载的更多相关文章

  1. ASP.NET MVC应用程序实现下载功能

    ASP.NET MVC应用程序实现下载功能 上次Insus.NET有在MVC应用程序实现了上传文件的功能<MVC应用程序显示上传的图片> http://www.cnblogs.com/in ...

  2. 多个文件下载打包生成zip格式下载

    这个多个文件下载生成zip格式必须先引用一个ICSharpCode.SharpZipLib.dll. 代码如下  //将多个文件打包成压缩文件zip格式下载         protected voi ...

  3. ASP.Net MVC 生成安全验证码

    ---------html <td>验证码:</td>            <td>                <img src="/Logi ...

  4. ASP.NET MVC生成安全验证码

    html部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  5. (一)【转】asp.net mvc生成验证码

    网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录.灌水等危害网站的操作.验证码被广泛应用在注册.登录.留言等提交信息到服务器端处理的页面中.   ...

  6. ASP.NET网页生成EXCEL并下载(利用DataGrid或GridView等)

    前几天要在后台查询数据库内容(用entity framework),将查询出来的信息(List或DataTable形式)转成EXCEL供用户下载.经过谷歌.百度搜索,终于搜出了一些代码.似乎可用了,结 ...

  7. Asp.net mvc生成验证码

    1.生成验证码类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  8. Asp.net MVC 填充word并下载

    使用Aspose.word填充内容并下载(免费版Aspose) 填充固定模式的Word文档,需要先制作Word模板: Aspose.Words主要通过Words里域(Fields)来控制内容.     ...

  9. ASP.NET MVC 生成验证码

    using System.Web.Mvc; using System.Drawing; using System; using System.Drawing.Imaging; using Models ...

随机推荐

  1. for循环中执行setTimeout问题

    代码片段: for(var i=0;i<8;i++){ setTimeout(function () { console.log(i) },0) } 输出了8次8,这跟js的执行顺序和作用域链有 ...

  2. C#对注册表的操作

    C#中提供的与注册表相关的最主要的是两个类: Registry 和 RegistryKey,这两个类属于Microsoft.Win32命名空间 Registry类包含5个公共的静态域,分别代表5个基本 ...

  3. c#异步调用的几种方式

    首先,我们分析一下异步处理的环境 需要在当前线程中获取返回值 不需要在当前线程中获取返回值,但是仍然需要对返回值做处理对于第1中情况,还可以继续细分 在当前线程中启动线程T,然后继续执行当前线程中的其 ...

  4. 新建Vue项目

    新建Vue项目 1.安装Vue命令行工具,webpack和git,使用淘宝镜像CNPM.参考http://www.imooc.com/video/12299 2.打开命令行,进入到要存放的目录,win ...

  5. 读lodash源码之从slice看稀疏数组与密集数组

    卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭. --北岛<回答> 看北岛就是从这两句诗开始的,高尚者已死,只剩卑鄙者在世间横行. 本文为读 lodash 源码的第一篇,后续文章会更新到这个仓 ...

  6. 使用Dropwizard(2)-配置分类ConfiguredBundle

    前言 不可避免的要用dropwizard作为service框架.持续学习.上次在dropwizard中使用feign,使用hystrix, 算是基本入门了.接下来就是基于此的优化. 把需要使用Conf ...

  7. (三):C++分布式实时应用框架——系统管理模块

    C++分布式实时应用框架--系统管理模块 上篇:(二): 基于ZeroMQ的实时通讯平台 一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个"封闭"的系统.你不可能 ...

  8. MyBatis开发学习记录

    使用MyBatis时主要是完成POJO和SQL的映射规则 MyBatis基本构成: SqlSessionFactoryBuilder SqlSessionFactory SqlSession SqlM ...

  9. git学习之创建版本库

    创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以 ...

  10. 【转】Visual Studio Code 使用Git进行版本控制

    原文链接:https://www.cnblogs.com/xuanhun/p/6019038.html?utm_source=tuicool&utm_medium=referral 本来认为此 ...