0

我正在使用 Ionic zip,我制作了 zip 文件并想下载并自动解压缩。我已经实现了提取功能,我在网页上有一个按钮,单击它将提取 zip 文件并将其下载到我在代码中提供的路径,下面是我的代码

String TargetDirectory = @"C:\";
            using (ZipFile zip = ZipFile.Read(Server.MapPath(ConfigurationManager.AppSettings["zipfiles"] + filename)))
            {
                zip.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently;
                zip.Password = password;
                zip.ExtractAll(TargetDirectory);
            }

此代码工作正常,我想在单击按钮时显示下载对话框并在用户从对话框中选择的路径上提取文件。我怎样才能做到这一点?

4

1 回答 1

0

我们也遇到过这个特殊的问题,我们的问题是我们有很多文件要压缩,压缩后它的大小大约是 2GB。

我们是如何整理的。1. 我们有一个下载链接 2. 用户点击它 3. 我们显示一个带有进度轮的弹出窗口 4. 我们在不同线程的后台处理 Zip。(Zip 必须仅为该用户专门创建) 5. 一切正常后,我们会向用户显示下载链接 6. 用户可以在任何他想要的地方下载它。

我不确定这是否对您有帮助,但它对我们有用。

编辑添加一些代码:我们已经使用 JQuery 实现了这一点

// Action for download zip link
            $(".downloadZip").click(function () {
                var jqXhr;
                $("a.downloadZipAction").attr("href", "/GetFile?fileName=yourfile.Zip");
                $(".ZipDownLoadBox").show();
                $(".downloadingZip").show();
                $(".DownloadZipLink").addClass("hide");
                var dialogBox = $("#dialogZip").dialog({
                    modal: true,
                    width: '400px',
                    zIndex: 99999,
                    close: function (event, ui) {
                        jqXhr.abort();
                    },
                    open: function () {
                        jqXhr = $.post('@Url.Action("DownloadZip")', { uuid: $("#fileName").val() }, function (data) {
                            $(".ui-icon-gripsmall-diagonal-se").remove();
                            $(".downloadingZip").hide();
                            $(".DownloadZipLink").removeClass("hide");
                            $(".downloadZipAction").click(function () {
                                $(dialogBox).dialog("close");
                            });
                        });
                    }
                });
            });
于 2013-07-26T06:08:56.737 回答