zoukankan      html  css  js  c++  java
  • 多文件下载

    1.下载文件  这行注释的   不知道msSystem对象是什么   不开这行注释也可以下载

            [AllowAnonymousAttribute]
            [Route("DownloadResourceFiles")]
            [HttpGet]
            public async Task<IActionResult> DownloadResourceFiles(string fileName)
            {
                if (string.IsNullOrEmpty(fileName))
                {
                    return NotFound();
                }
                string controller = RouteData.Values["controller"].ToString();
                var path = @"C:JCB";
                var memoryStream = new MemoryStream();
                using (var stream = new FileStream(path + fileName + ".xml", FileMode.Open))
                {
                    await stream.CopyToAsync(memoryStream);
                }
                memoryStream.Seek(0, SeekOrigin.Begin);
                //文件名必须编码,否则会有特殊字符(如中文)无法在此下载。
                //string encodeFilename = msSystem.Web.HttpUtility.UrlEncode(fileName, msSystem.Text.Encoding.GetEncoding("UTF-8"));
                Response.Headers.Add("Content-Disposition", "attachment; filename=" + fileName + ".xml");
                return new FileStreamResult(memoryStream, "application/octet-stream");//文件流方式,指定文件流对应的ContenType。
            }

    2.如果是单一的文件  前端可以直接

    window.open(url);
    3.如果前端需要循环下载多个文件   直接用window.open 下载的时候 后面的文件会被前面的冲突  导致只有打开一个下载链接
    通过下面这种方式就可以一次性打开多个下载链接  
          let url = 'http://localhost:60275/api/Download/DownloadResourceFiles?fileName=' + item.code;
          let iframe = document.createElement('iframe') as any ;
          iframe.style.display = 'none'; // 防止影响页面
          iframe.style.height = 0; // 防止影响页面
          iframe.src = url;
          document.body.appendChild(iframe);//这一行必须  ifroma挂载到dom树上才会发请求
        //1分钟之后删除元素 setTimeout(()
    => { iframe.remove(); }, 60 * 1000);

    https://segmentfault.com/a/1190000016771027

  • 相关阅读:
    设计模式(3)——模版方法模式
    设计模式(2)——工厂模式
    设计模式(1)——单例模式
    哪些SQL语句不能用在事务中
    Max Degree of Parallelism最大并行度配置--缓解CPU压力
    IOC框架--AutoFac
    Log4Net日志详解
    Trace、Debug和TraceSource的使用以及日志设计
    c# System.Diagnostics命名空间--调试并跟踪代码日志
    数据分析必会的六大实用模型
  • 原文地址:https://www.cnblogs.com/jiangchengbiao/p/11134510.html
Copyright © 2011-2022 走看看