zoukankan      html  css  js  c++  java
  • NET 文件批量下载

    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(1);//设置压缩级别
    
                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, 0, filebyte.Length);  //写入
                    });
                }
                zos.Finish();
                zos.Close();
    
                ms.Position = 0;
                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, 0, (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;
          }
        }
    View Code
  • 相关阅读:
    javascript学习_函数调用模式与this取值
    Git 学习笔记(Git教程-廖雪峰)
    Linux学习一周初体验
    前言_写在立冬时
    2021.10.24驾考日记
    大二上学期的HTML杂碎
    AISing Programming Contest 2021(AtCoder Beginner Contest 202)D题题解
    并查集两优化——按秩合并与路径压缩
    [算法板子] 求拓扑序列(拓扑排序)
    浅谈迭代加深搜索 ( IDDFS )
  • 原文地址:https://www.cnblogs.com/Cailf/p/9946823.html
Copyright © 2011-2022 走看看