一次下载多个文件

最近微软更新频频,我也去凑热闹下载更新包安装包。我发现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_USER\Software\Microsoft\Windows\CurrentVersion\Internet 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,点击“确定”。

时间: 2024-12-10 05:01:36

一次下载多个文件的相关文章

ftp下载指定日期文件(文件名中含日期)

网上查了很多,但是执行都各种错误,然后自己研究了半天,整了个能用的 要求:FTP文件名中含日期 步骤:将一下代码保存为BAT脚本,配置定时任务即可 @echo offrem 计算指定天数之前的日期set DaysAgo=1rem 假设系统日期的格式为yyyy-mm-ddcall :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDaysset /a PassDays-=%DaysAgo%call :DaysToDate %PassDays%

Internet Explorer 浏览器在同一时刻只能从同一域名下载两个文件。

Internet Explorer 浏览器在同一时刻只能从同一域名下载两个文件.至于原因请见 MSDN Blogs:<Internet Explorer and Connection Limits>,如何解除限制请见微软客户帮助与支持主页:<如何将 Internet Explorer 配置为可以同时进行两个以上的下载会话>.不管 Firefox 有多火,无可否认,IE 仍然是浏览器市场的老大.所以,在做系统架构时,不得不去考虑 IE  同时只能从同一域名下载两个文件的限制.如果超过

如何下载远程dll文件,并且执行不被360报毒

当然,说的是没有数字签名的情况,如果有数字签名一切都好说. 正常情况下载一个dll到本地,执行肯定会被360报毒的. 我的方法,主要有以下几点: 1 文件一定要加密,哪怕是只有抑或一下简单的加密. 2 要手动加载dll,不要用系统的LoadLibrary. 这样360就认为你只是下载一个普通文件,不会报毒啦,一个小例子,放在百度网盘了 pan.baidu.com/s/1ntH0IrJ 需要的代码很简单,手动加载dll百度有很多例子,实在需要代码请加微信公众号,私信我. 欢迎关注 windows驱

php一次下载多个文件记载

客户要求将现在的单个下载改成打包下载,正常思路就是将文件临时保存起来再打个压缩包下载,搞了很多天,没搞出来,有2个难题: 1.原来保存的文件为tmp格式,怎样转成xls或xlsx正常的格式. 2.将文件压成zip包之后打不开,总报错. 我只能暂时放弃,找了一个折中的方法.就是将单个文件for循环下载,但由于html自身的限制,下载一个就会停止. 在这感谢网友geel的提醒,最后解决了这个问题. 通过for循环,重新访问文件生成页面,window.open.这才解决了这个问题. 不过这样做还是有个

linux批量下载FTP服务器文件

由于在vmwarem内做一个ORACLE测试环境,要从宿主机上复制ORACLE源安装文件.方法有很多,这次就想用3cdaemon把宿主机(windows)做TFTP服务器端,LINUX做客户端下载的方式实现.居然没那么容易. 1.用FTP登录,发现get只能下载单个文件,mget可以下载多个文件,但不能下载目录!没法下载几个G大小N个子目录的文件啊. 2.wget -r -nH --ftp-user=username --ftp-password=password 如:wget -r -nH f

Ubuntu安装已经下载好的文件包

默认的文件下载都在 ~/Downloads 文件夹里面. 按 ctrl+alt+t 打开命令. 1.解压下载好的文件包,如: tar -xvf Sublime\ Text\ 2.0.2.tar.bz2 2.将解压出来的文件移到 /usr/local/lib/ 目录里面: mv Sublime\ Text\ 2 /usr/local/lib/ 3.再给它建立一个快捷方式(类似与windows中的快捷方式,实际是一个链接),这样,在Terminal的任意地方都可以随心所欲的打开sublime tex

Ant步步为营(2)在ftp上下载需要的文件

早上好,开始一天工作之前先踩踩了园子,今天介绍ftp上下载文件. <?xml version="1.0"?>    <project name="ForTest" default="ftp.download" >    <property file="build.properties"></property>        <target name= "ftp.d

Android连接socket服务器上传下载多个文件

android连接socket服务器上传下载多个文件1.socket服务端SocketServer.java public class SocketServer { int port = 8888;// 端口号,必须与客户端一致 // 选择进行传输的文件(测试) String path = "C:\\Temp"; String filePath = "E:\\img.png"; Socket client; public static void main(Strin

aspx 文件上传和下载,多文件上传

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MultiFileUpload.aspx.cs"  Inherits="MultiFileUpload"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org

大开测试:性能- 如何下载并保存文件到本地(连载18)

7.18  如何下载并保存文件到本地 1.问题提出 如何下载并保存文件到本地? 2.问题解答 一个人事管理系统项目一般都要实现能够上传和下载电子文件(如学位照.身份证.护照或者其他Word.Excel.Pdf等格式的电子文件),测试时为了模拟下载的场景,需要编写相关脚本.在HTTP中,没有任何一个方法或是动作能够标识“下载文件”这个动作,对HTTP来说,无论是下载文件或者请求页面,都只是发出一个GET请求,LoadRunner记录了客户端发出的对文件的请求,并能够收到文件内容.因此,完全可以通过