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

    最近微软更新频频,我也去凑热闹下载更新包安装包。我发现chrome弹出一个对话框

    说什么 是否允许下载多个文件

    点击允许以后果然下载N个文件

    我心想微软这么牛?一次请求可以拆分成多个文件下载了?

    遂再次下载一次,看看是什么请求

    原来只是动态请求了多次JS,这个JS其实就是加了个iframe,里面是下载的文件

     JS请求格式是这样的,http://某js?guid guid guid guid N个GUID组成的参数,JS内部代码太多不放上来了,就是添加iframe

    微软的太过复杂,于是百度了一下,找了一个比较简单明了的例子,大家一看就明了啦

    http://liyifeng20021.blog.163.com/blog/static/1016315920142551453938/

    主要思路:在一个页面中append多个iframe的方式,来下载文件!
    具体实现如下:
    function batch_download(ids)
    {
    var tmp_array = [];
    tmp_array = ids.split(",")
     
           //download
    $("iframe").remove();  //清除页面上上一次存在的iframe
    window.ids_array = tmp_array;   //定义全局变量用来获取要下载文件的id
    download();  
    }
     
    function    download()
    {
    if(window.ids_array.length > 0)
    {
    $("body").append("<iframe src=download?file="+window.ids_array.pop()></iframe>"); //download为下载地址
    setTimeout(download, 1); //等待1毫秒后执行递归
    }
    }
     
    经过测试: 在IE9下,一次限制下载2个文件,如果要设置为多个,需要按以下步骤操作:
    让IE9的下载数量增大的步骤如下: 
      1.找到“开始”菜单栏 - 运行 - 在搜索框输入“regedit” 
      2.在注册表找到下列注册表键值: 
      HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings 
      3.右键单击“Internet Settings” - 选择新建 - 输入DWORD(32-bit)值 
      4.将新建值命名为MaxConnectionsPerServer。 
      5.双击MaxConnectionsPerServer,在数值框输入数字4,然后点击“确定”。 
      6.右键单击“Internet Settings”- 选择新建 - 输入DWORD(32-bit)值 
      7.将新建值命名为“MaxConnectionsPer1_0Server”。 
      8.双击“MaxConnectionsPer1_0Server”,在数值框输入6,点击“确定”。 
  • 相关阅读:
    docker mysql8 phpmyadmin
    linux 压缩与解压缩
    Ubuntu添加开机自动启动程序的方法
    Linux基本命令集合
    linux下使用supervisor启动.net core mvc website的配置
    小修改,让mvc的验证锦上添点花(2)
    小修改,让mvc的验证锦上添点花(1)
    java 基础面试
    redis 面试题
    springMVC 面试题整理
  • 原文地址:https://www.cnblogs.com/billsquall/p/4698935.html
Copyright © 2011-2022 走看看