下载多个zip文件asp.net

时间:2019-07-18 13:53:59

标签: c# asp.net httpcontext


我想一次下载多个压缩文件-而不是将它们放入1个zipfile中。我要他们分开。


我在下面有此代码段,其中输入来自用户选择的报告名称循环。

public static void ExecuteDownloadInBrowser(string reportPrefix)
    {
        string zippedFilePath = baseZippedFolderPath + reportPrefix + ".zip";
        FileInfo file = new FileInfo(zippedFilePath);
        if (file.Exists)
        {
            try
            {
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.ClearHeaders();
                HttpContext.Current.Response.ClearContent();
                HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
                HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
                HttpContext.Current.Response.ContentType = "text/plain";
                HttpContext.Current.Response.Flush();
                HttpContext.Current.Response.TransmitFile(file.FullName);
                HttpContext.Current.Response.End();

                WriteToLog("Downloadling file: " + file.Name + " in browser succeded");
            }
            catch(Exception ex)
            {
                WriteToLog("Error downloading file in browser. Message: " + ex.Message);
            }
        }
    }

这很好用,但是只有1个文件。
这是有道理的,因为一个请求=一个响应之间是一对一的关系。

但是除了将它们全部压缩为1个文件之外,还有什么方法可以使我更窒息吗?

感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

每个请求只能有一个响应。这意味着您正在尝试违反该协议。

但是您可以通过浏览器的多个请求来实现。解决方案在于客户端代码。