2014-11-04 3 views
0

ASP.NET/VB.NET 웹 응용 프로그램.복수 파일 다운로드

현재 Word 문서를 만들고이를 사용자에게 스트리밍하고 있습니다. 브라우저는이 열기를 "열기/저장"대화 상자 등으로 처리합니다 ...

기본적으로 웹 폼에는 다중 선택 목록 상자가 있습니다. 그들은 하나 이상의 문서를 선택하고 "생성/다운로드"버튼을 클릭하십시오. 단일 파일에 적합합니다. 그러나 여러 파일이 작동하지 않습니다. 여기에 .... 내 코드의 일부

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() 

질문 : 한 번에서 다운로드 선택된 모든 파일에 사용자가 허용 할 수 있습니다 방법. 나는 정말 간단한 해결책을 선호한다. (우편 번호를 만들어야하는 경우에도 ... 더 편리 할 경우에만)

미리 감사드립니다.

+0

이것은 VB는 ASP가 아니지만 유용 할 수도 있습니다 : http://www.codeproject.com/Articles/35787/VB-NET-Background-File-Downloader – Kat

+0

개인적으로' For Each' 루프는 목록을 순환하고 각 파일을 순서대로 다운로드합니다. – Zack

+0

@Zack 문제는 브라우저에 "열기/저장"대화 상자가 나타나고 코드가 이미 계속되고 다른 대화 상자가 나타나지 않는 경우입니다. 예제를 제공해 줄 수 있습니까? – WebDevGuy

답변

0

한 번에 하나씩 루프에서 다운로드 할 수 있습니다. 한번에 모두 다운로드하려면 루프의 각 파일에 대한 백그라운드 작업자를 시작하여 별도의 스레드에서 각각을 다운로드 할 수 있습니다.

+0

감사합니다. 당신은 backgroundworker에 대한 링크 또는 예제를 제공 할 수 있습니까? – WebDevGuy

+0

예 : http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx – xpda