IE下载大文件的问题

时间:2015-11-17 05:02:13

标签: c# asp.net-mvc zip

我正在Asp.net MVC中构建应用程序,我有一些功能可以下载超过50 MB的zip文件。一切正常,但在IE10,11版本的zip文件下载超过40MB是错误而不是下载。它给出了下载被中断之类的错误。 为了您的信息,我使用IONIC.DLL来压缩文件。它在所有其他浏览器中都很好用。我也附上了示例代码。

        Response.Clear();
        Response.BufferOutput = false;  // for large files
        Response.ContentType = "application/zip";
        Response.AddHeader("content-disposition", "filename=Documents.zip");
        Response.AddHeader("Content-Length", "632620");

        using (var zip = new ZipFile())
        {
            foreach (var file in files)
            {
                if (!file.Contains(":")) continue;
                var filename = file.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries)[0];
                var fileUrl = Server.MapPath(string.Format("~/Uploads/{0}MyLib/{1}", Test, filename));

                //zipping current file
                zip.AddFile(fileUrl, "Document");
            }    
            zip.Save(Response.OutputStream);
        }

1 个答案:

答案 0 :(得分:0)

我发布了我的回答。在尝试了所有的事情之后,我从方法的末尾删除了Response.Close()的代码行。原因非常简单我没有将Zipped文件存储到服务器上的任何其他位置,因此同时它将存储在Response对象中,并且当执行Response.Close()时,大型文件将不会被下载。所以它会给出像下载被破坏的错误。 感谢@Yeldar和@Oguz的帮助。