• 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
  • 相关阅读:
    Shell基础
    个人对JavaScript预编译的理解
    文件系统管理
    文件特殊权限
    权限管理ACL权限
    用户和用户组管理
    RPM包管理-yum管理
    oracle11g完全卸载方法
    JVM概述
    复杂查询优质习题
  • 原文地址:https://www.cnblogs.com/Cailf/p/9946823.html
Copyright © 2020-2023  润新知