2012-07-06 71 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