IE下载大文件问题
IE download issue with large file
我正在 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);
}
我正在发布我的答案。在尝试了所有方法之后,我从方法的末尾删除了 Response.Close()
的代码行。原因很简单,我没有将压缩文件存储到服务器上的任何其他位置,所以同时它将存储在 Response 对象中,当 Response.Close() 将被执行时,大文件将不会被下载。所以它会给出像下载中断这样的错误。
感谢@Yeldar 和@Oguz 的帮助。
我正在 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);
}
我正在发布我的答案。在尝试了所有方法之后,我从方法的末尾删除了 Response.Close()
的代码行。原因很简单,我没有将压缩文件存储到服务器上的任何其他位置,所以同时它将存储在 Response 对象中,当 Response.Close() 将被执行时,大文件将不会被下载。所以它会给出像下载中断这样的错误。
感谢@Yeldar 和@Oguz 的帮助。