一次下載多個文件


最近微軟更新頻頻,我也去湊熱鬧下載更新包安裝包。我發現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,點擊“確定”。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM