2012-07-06 48 views
1

我有一個應用程序從gridview下載文件。當一個文件附加到一行時,我可以輕鬆地下載這些文件,但是當我嘗試在一行中存在多個文件時,我的應用程序無法再下載。任何人都可能提出一個我可以做到的方法嗎?從一個Gridview行下載多個文件asp.net C#

在此先感謝

+0

嘗試壓縮文件。 http://geekswithblogs.net/twickers/archive/2005/11/08/59420.aspx – NoLifeKing 2012-07-06 07:20:40

+0

是否有可能沒有先壓縮文件,因爲這是最初的要求。 – imdondo 2012-07-06 07:28:26

+0

如果有多個文件,爲什麼將它們添加到同一行?你不能在另一個視圖中顯示那些嗎?在行選擇可能? – nunespascal 2012-07-06 07:29:17

回答

1

當用戶點擊和下載文件時,你可以給這個javacript命令

window.location = "FileForDownload.jpg"; 

如果你贏了給用戶下載多個文件的能力更復雜化。

冷杉你必須知道,瀏覽器將提醒該行動,並停止它,直到用戶接受多次下載。

現在你可以很容易地說,你可以發送很多文件在window.location,但如果發生這種情況不同步,那麼一個文件可以阻止另一個文件。這裏的同步can be done with this trick of cookies並且只在第一次啓動(或結束)之後給第二次下載命令。

還有一種解決方案是多次調用window.open("FileForDownload.jpg");(當然有一個定時器延遲),它不需要同步。

這是javascript中的一般想法,但需要一些改進才能打開文件。

function DownloadAllFiles() 
{ 
    for (var i=0; i< arguments.length; i++){  
     window.open("http://www.domain.com/downloadpath/" + arguments[i]);) 
    } 
} 


// example of call 
DownloadAllFiles("File1.zip","File2.zip","File3.zip"); 
+0

我喜歡你的方法,它很簡單,仍然不需要jQuery。此外,您可以添加代碼以從代碼背後啓動JavaScript。 :) – NoLifeKing 2012-07-06 08:38:59