【问题标题】:Split zip file using DotNetZip Library使用 DotNetZip 库拆分 zip 文件
【发布时间】:2011-09-11 10:13:23
【问题描述】:

我正在使用DotNetZip Library 创建一个大约 100MB 的 zip 文件。我将 zip 文件直接保存到 Response.OutputStream

Response.Clear();
    // no buffering - allows large zip files to download as they are zipped
    Response.BufferOutput = false;
    String ReadmeText= "Dynamic content for a readme file...\n" + 
                       DateTime.Now.ToString("G");
    string archiveName= String.Format("archive-{0}.zip", 
                                      DateTime.Now.ToString("yyyy-MMM-dd-HHmmss")); 
    Response.ContentType = "application/zip";
    Response.AddHeader("content-disposition", "attachment; filename=" + archiveName);
    using (ZipFile zip = new ZipFile())
    {
        // add a file entry into the zip, using content from a string
        zip.AddFileFromString("Readme.txt", "", ReadmeText);
        // add the set of files to the zip
        zip.AddFiles(filesToInclude, "files");
        // compress and write the output to OutputStream
        zip.Save(Response.OutputStream);
    }
    Response.Close();

我需要将这个 100MB 的文件分成大约 20MB 的部分,并为用户提供下载工具。我怎样才能做到这一点?

【问题讨论】:

    标签: asp.net split dotnetzip


    【解决方案1】:

    您的问题有点独立于 ZIP 方面。基本上,您似乎希望下载一个 100mb 或更大的大文件,并且您希望分部分进行。一些选项:

    • 将其保存为常规文件,然后分段传输。客户端必须为 N 个部分中的每一个发出不同的下载请求,通过HTTP Range header 选择文件的适当部分。必须将服务器设置为使用适当的 MIME 类型等服务器 ZIP 文件。

    • 将其保存到split (spanned) zip file,这意味着 N 个不同的文件。然后,客户端将为每个不同的文件创建一个 HTTP GET。服务器必须设置为服务器 .zip、.z00、.z01 等。我不确定内置操作系统工具是否正确处理拆分 zip 文件。

    • 将文件保存为一个大块,并让客户端使用BITS 或其他一些可重新启动的下载工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      相关资源
      最近更新 更多