HTML

<a class="btn btn-warning" id="btnDownload">选中下载</a>

JS

        /*
批量下载
*/
// li 列表的文件下载
$("#btnDownload").on('click', function() {
var arr = [];
var urls = escape(arr.join(','));
$(this).attr('href', '@Url.Action("BatchDownloadFiles")?str=' + urls + '&r=' + Math.random());
});

API

        public ActionResult BatchDownloadFiles(string str, int type)
{
var idList = str.Split(',').ToList().ConvertAll(x => int.Parse(x));
MemoryStream ms = new MemoryStream();
ZipOutputStream zos = new ZipOutputStream(ms);
zos.IsStreamOwner = false;
zos.SetLevel();//设置压缩级别 var rsp = new GetListByDetailIDListRequest
{
UserID = CurrentUserId,
JobTypeID = type,
IDList = idList
}.GetResponse();
if (rsp.IsSuccess)
{
rsp.Data.ForEach(dto =>
{
var filebyte = ByteOfGetOrderFiles(dto); //byte类型的数据
ZipEntry entry = new ZipEntry(fileName); //定义新的压缩数据对象
zos.PutNextEntry(entry);
zos.Write(filebyte, , filebyte.Length); //写入
});
}
zos.Finish();
zos.Close(); ms.Position = ;
return File(ms, "application/x-zip-compressed", string.Format("批量下载文件-{0}.zip", DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒")));
} public byte[] ByteOfGetOrderFiles(ExtractRecordDetailDTO dto)
{
var stream = DownloadFile(dto.SourceFile);
byte[] buffur = new byte[stream.Length];
stream.Read(buffur, , (int)stream.Length);
return buffur;
}     public static Stream DownloadFile(string path)
    {
      using (var client = new WebClient())
      {
        var stream = client.DownloadData(path);
        var outStream = new MemoryStream(stream);
        return outStream;
      }
    }

NET 文件批量下载的更多相关文章

  1. Jsp实现筛选并压缩文件批量下载

    Jsp实现筛选并压缩文件批量下载 首先明确一下需求,网页端点击一下button,传递特定的参数到download.jsp网页,筛选文件,对过滤得到的文件进行压缩,然后返回前端一个压缩包下载. 以下的代 ...

  2. C#子线程中更新ui-----c# 多线程多文件批量下载

    c# 多线程多文件批量下载   废话少说,先演示一张效果图 简单说下过程喽 开发过程中其实总是会碰到项目想应用下载文件~ 看其他语言有很多封装好的类库可以使用~~ 作为小白的我并没有找到很多c#的案例 ...

  3. SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型

    SQL 横转竖 .竖专横 (转载)   普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...

  4. js 实现多文件批量下载

    关于兼容性问题: <a href="xxx.docx" target='_blank'></a> 下载文件时,这种写法是没有兼容性问题:但是下载图片时,IE ...

  5. R语言之RCurl实现文件批量下载

    前言: RCurl工具包的作者是由Duncan Temple Lang现任加州大学 U.C. Davis分校副教授.他曾致力于借助统计整合进行信息技术的探索.使用者通过RCurl可以轻易访问网页,进行 ...

  6. java+文件批量下载

    这篇文章主要介绍了Java实现批量下载选中文件功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下 1.在action中定义变量 private List<String> downLoa ...

  7. jquery-ajax实现文件批量下载

    直接看代码: <script type="text/javascript"> //全选控制 $(document).ready(function() { $(" ...

  8. C# 多线程多文件批量下载---子线程中更新UI 实例

    代码1: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usi ...

  9. c# 多线程多文件批量下载

    废话少说,先演示一张效果图 简单说下过程喽 开发过程中其实总是会碰到项目想应用下载文件~ 看其他语言有很多封装好的类库可以使用~~ 作为小白的我并没有找到很多c#的案例可参考 后找到一款“MutThr ...

随机推荐

  1. 64位windows+32位JDK8+32位eclipse是可以的

  2. C/C++ 宏

    0. #define MALLOC(n, type) \ ( (type *) malloc((n)* sizeof(type))) 1. 宏可以像函数一样被定义,例如:    #define min ...

  3. 53. Maximum Subarray (Array; DP)

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  4. django的流程分析

    首先实现一个前端输入网址,后端返回不同的html文件的步骤 一.配置django 1.创建工程 2.创建app 二.配置setting 1.配置templates路径 2.注释跨站请求 三.配置pro ...

  5. 设置zookeeper为systemctl守护进程

    ==目的== 想把zookeeper.hadoop.hbase.storm等大数据组件 设置为开机启动,并且进程挂掉之后,可以自动重启,以减少运维压力. ==service文件== 路径:/usr/l ...

  6. mathematica9激活

    1.打开m9软件 2.打开keygen软件 3.点手动输入验证码,输入里面的id到keygen软件再点save mathpath 4.复制keygen软件里面 的mathpass到 将生成的mathp ...

  7. 删除pdf文件所有超链接

    最近在读deep learning 书Bengio那本,在Github上面下载的,下载回来全都是超链接, 超级烦,比如点一下梯度下降法,就直接跳转到数后尾的index. 我看书还喜欢老点,所以要把他们 ...

  8. python之BeautifulSoup模块

    # 名称修改(bs4) from bs4 import BeautifulSoup 帮助文档 Beautiful Soup parses a (possibly invalid) XML or HTM ...

  9. 2018.07.17 HAOI2016 找相同字符(SAM)

    传送门 就是给两个字符串,让你求公共字串的个数. 本来大佬们都是用的广义后缀自动机,但我感觉后缀自动机已经可以做这道题了.我们对其中一个字串建出后缀自动机,然后用另外一个后缀自动机在上面统计贡献即可. ...

  10. 解决Docker时区与主机时区不一致的问题

    在Dockerfile里面增加以下红色的部分 FROM hub.chinacloud.com/common/jdk:8MAINTAINER xxx@chinacloud.com.cn RUN mkdi ...