2014-11-04 98 views
0

ASP.NET/VB.NET web应用程序。多文件下载

目前我正在创建一个Word文档并将其流式传输给用户。浏览器通过“打开/保存”对话框处理这个问题,等等......

基本上webform有一个多选列表框。他们选择一个或多个文档并单击“生成/下载”按钮。适用于单个文件。但多个文件不起作用。这里是我的代码部分....

HttpContext.Current.Response.Clear() 
HttpContext.Current.Response.AddHeader("Content-Disposition", Convert.ToString("attachment; filename=") & DocFileNameDestination) 
HttpContext.Current.Response.AddHeader("content-length", finalDocumentStream.ToArray().Length.ToString()) 
HttpContext.Current.Response.ContentType = "application/ms-word" 
HttpContext.Current.Response.BinaryWrite(finalDocumentStream.ToArray()) 
HttpContext.Current.Response.Flush() 
HttpContext.Current.ApplicationInstance.CompleteRequest() 

问:我怎样才能让用户下载所有选中的文件在同一时间。我宁愿一个非常简单的解决方案。 (即使我必须创建一个zip ...只有更容易。)

在此先感谢!

+0

这是VB不是asp的,但它可能对你有用:http://www.codeproject.com/Articles/35787/VB-NET-Bgroundground-File-Downloader – Kat 2014-11-04 17:25:30

+0

我个人只是把它们扔进一个' For Each'循环遍历列表并按顺序下载每个文件。 – Zack 2014-11-04 17:40:31

+0

@Zack问题是当浏览器中出现“打开/保存”对话框时,代码已经在继续,而另一个对话框没有出现。你能提供一个例子吗? – WebDevGuy 2014-11-04 21:10:36

回答

0

你可以一次下载一个循环。如果您想一次下载全部文件,可以通过为循环中的每个文件启动一个后台工作程序来单独下载每个文件。

+0

谢谢。你能为背景工作者提供一个链接或例子吗? – WebDevGuy 2014-11-04 21:07:18

+0

当然:http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx – xpda 2014-11-05 07:22:49