2014-06-27 73 views

回答

0

非常感謝剛剛測試過這一點:

<div><a href="http://2i-it.com/download/file1.rar" class="auto-multi-click">File1</a></div> 
    <div><a href="http://2i-it.com/download/file2.rar" class="auto-multi-click">File2</a></div> 
    <div><a href="http://2i-it.com/download/file3.rar" class="auto-multi-click">File3</a></div> 

    <a href="#" id="download-all">Download All</a> 

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

    <script> 
    $(function() { 
     $('#download-all').click(function() { 
      $('.auto-multi-click').each(function() { 
       var url = $(this).attr('href'); 
       window.open(url); 
      }); 
     }); 
    }); 
    </script> 

+0

在Chrome中,這會立即顯示下載窗口中的所有3個下載內容。只需點擊「全部下載」即可解決問題。如果你製作一個jsfiddle,我會在那裏發佈完整的代碼。 –

+0

謝謝你,我確實嘗試過,但是和其他很多我嘗試過的方法一樣,只加載了第一個zip文件。控制器操作「我的操作」只被調用一次。在我的情況下,href是這樣的:href =「/ Home/MyAction?parm1 = 10 & parm2 = 11 & parm3 = True」 –

+0

這是調用控制器操作的URL,並且不指向要下載的文件。 –

0

哇奈! 「點擊」25個下載鏈接!你是否想要殺死你的用戶?我的工作信息有限,但是如果你能以某種方式「鏈接」服務器端的鏈接以便它們可以被引用,或者甚至可以傳入你想要下載的所有文件的Id並將它們傳遞給一個操作方法。使用服務器端壓縮庫並將所有文件一起壓縮成1個單獨的壓縮文件,並將其作爲下載的包返回。請不要發送25個人拉鍊大聲笑。

快速搜索後,如果您使用.net 4.5,那麼您可以使用一個很好的庫。看起來你甚至可以提取25個拉鍊,然後將它們全部壓縮到一個zip文件中,以便它們沒有一個zip文件,其中包含25個單獨的拉鍊。

無論哪種方式,服務器端是要走的路,我會在發送25下載請求之前考慮兩次。這會傷害你的用戶以及你的服務器。

.NET 4.5: http://msdn.microsoft.com/en-us/library/system.io.compression.zipfile(v=vs.110).aspx

第三方: http://icsharpcode.github.io/SharpZipLib/

+0

比你的建議,但有單獨的zip文件不是我的選擇。每個zip文件都有特定的名稱,指定它稍後使用。如果我將解壓並只創建一個zip文件,那麼其他人將不得不再次創建這些單獨的zip文件。現在的流程更多的是我無法改變。而壓縮拉鍊不是要走的路。 –

+0

作爲迴應,我會說拉鍊拉鍊,然後將是最好的方法。正如其他人在這裏所述。瀏覽器有連接限制,25我超過了大多數瀏覽器限制。再加上你遇到了如果他們點擊下載2x +現在他們有50,75,100個下載排隊等待的情況。祝你好運 :) – Tony