2009-07-03 3 views
5

Mam ten kodASP.net C# Wiele dokumentów na jeden obiekt Response

private void writeReport(IReport report, string reportName) 
{ 
    string reportString = report.makeReport(); 
    ASCIIEncoding encoding = new ASCIIEncoding(); 
    byte[] encodedReport = encoding.GetBytes(reportString); 
    Response.ContentType = "text/plain"; 
    Response.AddHeader("Content-Disposition", "attachment;filename="+ reportName +".txt"); 
    Response.OutputStream.Write(encodedReport, 0, encodedReport.Length); 
    Response.End(); 
} 

ale mam 3 dokumenty, które trzeba wysłać do klienta. Wolałbym nie zmuszać użytkownika do klikania 3 przycisków, aby uzyskać pliki 3 txt. Czy istnieje sposób, aby wysłać wszystkie 3 na jedną odpowiedź?

Odpowiedz

6

Nie, wieloczęściowe załączniki do pobrania (jak w e-mailu) nie są obsługiwane ze względów bezpieczeństwa. Nazywa się to "drive-by download".

Pamiętaj, że Gmail obsługuje to, dynamicznie pakując pliki. Ty też powinieneś. http://forums.asp.net/t/1240811.aspx

2

Można to zrobić zgodnie z artykułem "Pobierz wiele plików w jednym żądaniu http" pod numerem motobit.com.

Jednak to nie jest sposób, w jaki protokół HTTP został zaprojektowany, a wykonanie tych kroków może zostać przerwane w dowolnym momencie w zależności od konfiguracji klienta i serwera.